2013-10-03 21 views
1


我已经编写了一个应用程序,简单地解析指定网站的网页列表并提取与JSoup的内容。
问题是,用我的IP,我可以每天从我的列表(在同一个域中)请求最多3个特定页面,在这3页之后,我尝试的每个请求都会重定向到一个页面,让我来第二天再接收3个请求。
我想要做的是让我的应用程序每3次请求更改我的IP。Java:如何请求一个新的IP我的应用程序的每个周期

我已经测试过SilverTunnel和JTor(允许我为每个请求提出一个新的标识符-IP用于我的请求),但是这些库文件是不好记录的,几乎没有任何示例说明我可以如何每N循环)。

我在问是否有人知道让我的应用程序更改我的IP的方法,掩盖它,甚至要求我的ISP使用特定的IPV6并使用不同的新版本进行更改。

有没有人知道任何解决这个问题或测试类似的东西?

谢谢大家。

+0

我可能是错的,但IP从您的路由器中检索,您需要重新启动它。你最好的选择是通过代理来访问 – RamonBoza

回答

0

此用例的最佳解决方案是要求网站获得您所做的许可。然后,他们会将您列入白名单,或者甚至更好地指向您一个内部API,您可以以比HTML更高效的方式获取有趣的数据。

[编辑]我还没有听说过(法律)技术解决方案。犯罪分子使用巨大的僵尸网络与成千上万的黑客窃取电脑,但我强烈建议你远离这一点。

我还没有遇到一个页面,每天只允许三次下载。这种严重的限制告诉我,这些人真的痴迷于他们的数据。试图绕过他们的防御会让你陷入困境(不管从你身边看起来有多愚蠢)。如果他们和你在美国,准备因违反CFAA而被起诉。 This has happened before for lesser reasons

现在一些技术细节。你不会说你如何连接到互联网。如果你通过DHCP收到你的IP,那么你需要让你的ISP给出一个不同的地址。这将是一个手动过程,所以他们准备在他们身上找到一点热情。

Tor听起来像是一个很好的解决方案,因为Onion routing应该每次都发出一个不同的出口节点的请求。但是只有一个(相对)少量的出口节点,所以很可能在相对较短的时间后,你会尝试每个节点三次(如果其他人连接到相同的服务,这会变得更糟)。

[编辑2]一个可能的解决方案可能是成为一个ISP并正式购买IP地址块(就像任何普通的ISP一样)。

IPv6块不应该那么昂贵,但要注意,如果该服务仅适用于IPv4,它们将不会让您得到任何地方!如果是这样的话,那么你和服务之间会有一个IPv6到IPv4的桥梁,它会认为你总是使用相同的地址。

现在试图购买IPv4地址是probably hopeless(好吧,如果你愿意花费很多钱,你可以得到一个块)。

+0

感谢你的回答亚伦,但我要求的是一种编码解决方案,而不是社交解决方案。我希望能够在没有询问许可的情况下做到这一点,甚至可以测试我自己的项目,改变IP甚至可以用于多重项目目的。 – HypercubeLabs

+0

我还没有遇到一个页面,每天只允许三次下载。这些严格的限制告诉我,这些人非常痴迷他们的数据。试图绕过他们的防御会让你陷入困境(不管从你身边看起来有多愚蠢)。如果他们和你在美国,准备因违反[CFAA]而被起诉(http://en.wikipedia.org/wiki/Computer_Fraud_and_Abuse_Act) –

+1

我是一名计算机科学家,我只想要一个基于解决方案的代码,那是我学习的东西,这就是我想要制作的,我没有明白你的观点。 这里我们讨论代码,而不是法律,我要求的是完全合法的学习目的,甚至不是,因为如果他们允许3个下载每个IP,我只会使用100个IP进行300次下载。如果他们真的不想分享他们的数据,他们可能不会在主页上打开它们。 – HypercubeLabs

相关问题