我有一个爬虫程序应该运行多个线程,每个线程具有不同的IP地址,同时大约10个线程。
是否可以在运行Windows VII的计算机上为每个线程分配不同的IP地址?使用Java程序?
如果是这样,可以通过使用具有多个NIC的机器来实现吗?
我想在程序级别与这些不同的IP地址进行交互,这是否可行?
答案 0 :(得分:1)
如果您的程序直接使用Socket,您可以枚举所有网络接口及其IP地址,并使用bind()或四参数Socket构造函数绑定到您喜欢的任何本地IP地址。
如果您正在使用URLConnection,我不知道您可以以任何方式指定本地地址。
我无法代表HttpClient,但它有您可以参考的文档。
如果你正在使用别的东西,这个乏味的猜谜游戏将继续下去,直到你完全向我们倾诉它是什么。
答案 1 :(得分:0)
您可以通过以下方式获取可用的网址:
Enumeration<NetworkInterface> nics = NetworkInterface.getNetworkInterfaces();
您可以使用他们的InetAddresses将您的线程绑定到特定的nic。