首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python机械化浏览器中使用polipo和tor可以显示一个站点上的ip地址,而不是另一个站点上的ip地址

在python机械化浏览器中使用polipo和tor可以显示一个站点上的ip地址,而不是另一个站点上的ip地址
EN

Stack Overflow用户
提问于 2013-01-10 20:21:46
回答 1查看 2.6K关注 0票数 1

我对网络的了解很少。我发现了一个悖论,需要关于如何解决这个问题的建议。

实验1:在python脚本中使用tor/polipo http代理的机械化浏览器发出URL请求。实际的IP会显示在站点的日志中。(意想不到的结果:我希望显示tor IP。)

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

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

实验4:没有代理的Chrome浏览器指向whatismyip,机器的实际IP如实验1所示。(预期)

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

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

我的python代码:

代码语言:javascript
复制
    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

哪里

代码语言:javascript
复制
    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签入时,站点日志中信息请求者的物理位置似乎发生了变化。

我真的希望当我使用机械化以自动方式访问这个网站进行测试时,我的tor IP能够显示出来。

我还有最后一个实验要尝试,那就是在网络控制面板中将系统范围的代理设置设置为tor。我真的很讨厌把这个放在常规浏览中,因为它的速度要慢得多。我只想让我的python脚本通过polipo http代理使用tor。

python新手。对tor来说是个新手。网络新手,所以我提前感谢您在简单的解释中多余的解释。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-25 06:55:00

这与tor和mechanize一起工作:

代码语言:javascript
复制
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()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14257839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档