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

时间:2013-01-27 10:30:25

标签: windows pycurl network-interface

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

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

    我希望通过Python脚本中的无线局域网与外部外部地址5.7.68.81建立连接。

    我做了以下事情:

    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")不起作用,或者我错误地使用它。

    此外,我尝试了this questionurllib2socket.bind(('192.168.1.178', 0)的所有答案 - 结果相同。

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

1 个答案:

答案 0 :(得分:1)

检查这些Examples。您可以看到选项用法。