代码之家  ›  专栏  ›  技术社区  ›  Joe

检查脚本是否实际使用ip列表中的代理

  •  0
  • Joe  · 技术社区  · 15 年前

    我有一个代理ip的列表,我想在我的python脚本中使用,但是如何验证我使用的是列表中的一个ip地址,而不是我自己的?我正在使用mechanize,但任何关于如何实现这一点的一般性解释都会有所帮助。

    谢谢

    1 回复  |  直到 15 年前
        1
  •  1
  •   MattH    15 年前

    许多代理在端口3128上运行,但将其替换为您正在使用的代理。发出请求后,如果您获得到已配置代理的主机和端口的流量,则可能 工作如果它去了网站的主机,那么它不是。

    例如,首先,没有代理人:

    $ tshark -i eth0 -n -Nn tcp port 3128 or tcp port 80

    from mechanize import Browser
    br = Browser()
    br.open('http://news.bbc.co.uk')
    
    0.000000 mylocalhost -> nol-vip05.cwwtf.bbc.co.uk TCP 51088 > 80 [SYN]
    0.003296 nol-vip05.cwwtf.bbc.co.uk -> mylocalhost TCP 80 > 51088 [SYN, ACK]
    0.003318 mylocalhost -> nol-vip05.cwwtf.bbc.co.uk TCP 51088 > 80 [ACK]
    0.003375 mylocalhost -> nol-vip05.cwwtf.bbc.co.uk HTTP GET / HTTP/1.1
    

    通过代理:

    br.set_proxies({'http':'some.proxy:3128'})
    br.open('http://news.bbc.co.uk')
    
    0.000000 mylocalhost -> some.proxy TCP 57556 > 3128 [SYN]
    0.011529 some.proxy -> mylocalhost TCP 3128 > 57556 [SYN, ACK]
    0.011571 mylocalhost -> some.proxy TCP 57556 > 3128 [ACK]
    0.011636 mylocalhost -> some.proxy HTTP GET / HTTP/1.1