使用polipo和tor与python mechanize浏览器在一个站点上显示ip而不是另一个站点

时间:2013-01-10 12:21:46

标签: python proxy tor

我对网络知之甚少。我发现了一个矛盾,需要有关如何处理解决方案的建议。

实验1:python脚本中带有tor / polipo http代理的机械化浏览器会请求URL。实际的IP显示在站点的日志中。 (意想不到的结果:我希望透露知识产权。)

实验2:在python脚本中使用tor / polipo http代理的机械化浏览器向whatismyip请求URL。 tor代理IP显示在结果中。 (预期)

实验3:使用tor代理的Firefox浏览器指向whatismyip。揭示了与实验2中相同的IP。 (预期)

实验4:没有代理的Chrome浏览器指向whatismyip,机器的实际IP显示与实验1中一样。(预期)

实验5:Mac OS X上系统网络设置中的HTTP代理设置为在侦听端口8123上使用tor / polipo代理。实验4中的Chrome浏览器现在显示与实验2和3相同的tor IP。 (预期)

Tor正在运行。 Polipo正在运行并配置为使用tor端口9050。

我的python代码:

    import sys, time, os
    from mechanize import Browser
    br = Browser()              # Create a browser
br.set_proxies({"http": "localhost:8123"}) #set proxy
result = br.open(URL)           # Open the login page
print result.read()                     #print resulting output

,其中

    URL = 'http://affinityehealth.com' | URL = 'http://whatismyip.com'

    #case 1 is able to find the actual IP using the browser in mechanize but not with any other browser using the tor proxy

我试图向网站的管理员说明,虽然记录IP是有用的,但它并不能证明签到的人的实际位置。几个星期以来,我已经演示了使用tor,而我的实际位置确实如此当我通过tor登记时,信息请求者的物理位置似乎在站点的日志中发生变化。

当我使用mechanize以自动方式访问此网站进行测试时,我真的希望我的tor IP出现。

我有最后一个尝试尝试,那就是在网络控制面板中将我的系统范围代理设置设置为tor。我真的很讨厌离开这个检查例行浏览,因为它明显更慢。我只希望我的python脚本通过polipo http代理使用tor。

python新手。新来的。网络新手,所以我提前感谢你在简单的解释中冗余冗余。

1 个答案:

答案 0 :(得分:1)

这适用于tor和机械化:

import socks
import socket
def create_connection(address, timeout=None, source_address=None):
    sock = socks.socksocket()
    sock.connect(address)
    return sock

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)

# patch the socket module
socket.socket = socks.socksocket
socket.create_connection = create_connection

import urllib2

print urllib2.urlopen('http://icanhazip.com').read()

import mechanize
from mechanize import Browser

br = Browser()
print br.open('http://icanhazip.com').read()