如何强制在Windows 7下的Python传出连接的特定networking接口?

我在Windows 7环境中有两个networking适配器,并且它们都连接到Internet:

  1. 以太网适配器(本地地址10.9.187.251,外部地址32.181.63.52)
  2. 无线局域网适配器(本地地址192.168.1.178,外部地址5.7.68.81)

以太网适配器默认使用。

我想在Python脚本中通过无线局域网与传出的外部地址5.7.68.81build立连接。

我做了如下:

import pycurl, StringIO, re c = pycurl.Curl() c.setopt(pycurl.URL, 'http://myproxylists.com/my-http-headers') c.setopt(pycurl.INTERFACE, "192.168.1.178") b = StringIO.StringIO() c.setopt(pycurl.WRITEFUNCTION, b.write) c.setopt(pycurl.SSL_VERIFYPEER, False) c.setopt(pycurl.SSL_VERIFYHOST, False) c.perform() rsp = b.getvalue() mtch = re.search(r'REMOTE_ADDR == (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', rsp) print mtch.group(1) 

我得到打印输出:

 32.181.63.52 

所以使用了默认的适配器。 看起来像c.setopt(pycurl.INTERFACE, "192.168.1.178")不起作用,或者我用它错误的方式。

此外,我试着用urllib2socket.bind(('192.168.1.178', 0) 这个问题的所有答案 – 相同的结果。

如何在Windows 7中使用Python 2.7为传出连接指定networking接口?

检查这些例子 。 你可以看到选项的用法。