我有一个爬虫程序,它应该运行多个线程,每个线程使用不同的IP地址,大约同时运行10个线程。
是否有可能在运行Windows VII的机器上分配每个线程不同的IP地址?用Java程序?
如果是这样,可以通过使用具有多个nic的机器来实现吗?
我想在程序级别与这些不同的IP地址进行接口,这可行吗?
-
如果你的程序直接使用Socket,你可以枚举所有的网络接口和它们的IP地址,并使用bind()或四个参数的Socket构造函数绑定到你喜欢的本地IP地址。
-
如果你使用URLConnection,我不知道你可以指定一个本地地址在任何方式
-
我不能为HttpClient说话,但是它有你可以参考的文档
-
如果你用的是别的东西,这个乏味的猜测游戏将继续下去,直到你屈就向我们进一步透露它是什么。
您可以通过以下方式获得可用的网卡:
Enumeration<NetworkInterface> nics = NetworkInterface.getNetworkInterfaces();
你可以使用它们的inetaddress将你的线程绑定到一个特定的网卡。