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

时间:2010-02-09 19:30:30

标签: python proxy

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

这是我第一次使用代理,所以你能告诉我的任何事情都会非常感激。

由于

1 个答案:

答案 0 :(得分:1)

运行wireshark / tshark将是一种方式。

许多代理在端口3128上运行,但将其替换为您正在使用的代理。让你请求,如果你获得了配置代理的主机和端口的流量,它可能是 工作。如果它进入网站的主机,那就不是。

E.g。首先没有代理:

$ 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