我对网络知之甚少。我发现了一个矛盾,需要有关如何处理解决方案的建议。
实验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新手。新来的。网络新手,所以我提前感谢你在简单的解释中冗余冗余。
答案 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()