【问题标题】:How to check Proxy headers to check anonymity?如何检查代理标头以检查匿名性?
【发布时间】:2015-05-18 00:01:21
【问题描述】:

我正在尝试确定高匿名代理。也称为私人/精英代理。从一个论坛我读过这个:

高匿名服务器不发送 HTTP_X_FORWARDED_FOR、HTTP_VIA 和 HTTP_PROXY_CONNECTION 变量。主机甚至不知道您正在使用 代理服务器,当然它不知道你的 IP 地址。

高度匿名的代理会显示以下信息:

REMOTE_ADDR = 代理的 IP 地址

HTTP_VIA = 空白

HTTP_X_FORWARDED_FOR = 空白

那么,我如何在 Python 中检查此标头,将它们作为 HA 代理丢弃?我尝试使用requests 包、带有内置http.client 和urllib2 的urllib 检索20-30 个代理的标头。但我没有看到这些标题,从来没有。所以我应该做错了什么......

这是我用来测试requests的代码:

proxies = {'http': 'http://176.100.108.214:3128'}
header = {'user-agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.360',}
s = requests.session()
s.proxies = proxies
r = s.get('http://www.python.org', headers=header)
print(r.status_code)
print(r.request.headers)
print(r.headers)

【问题讨论】:

    标签: python http proxy anonymity


    【解决方案1】:

    听起来您所指的论坛帖子正在谈论 server 在您的代理请求上看到的标头,而不是 client 上看到的标头代理响应。

    由于您使用www.python.org 作为服务器进行测试,因此查看它收到的标头的唯一方法是访问它们的日志。你不知道。

    但是有一个简单的解决方案:运行您自己的 HTTP 服务器,针对它发出请求,然后您就可以看到它收到了什么。 (如果您在防火墙或 NAT 后面,您正在测试的代理将无法连接到该服务器,您可能需要在某处获得免费的托管服务器;如果没有,您可以在您的机器上运行它。)

    如果您不知道如何设置和配置 Web 服务器,Python 自带了一个。只需使用 Python 3.2+ 运行此脚本(在您自己的机器上,或 Amazon EC2 免费实例,或其他):

    from http.server import HTTPServer, SimpleHTTPRequestHandler
    
    class HeaderDumper(SimpleHTTPRequestHandler):
        def do_GET(self):
            try:
                return super().do_GET()
            finally:
                print(self.headers)
    
    server = HTTPServer(("", 8123), HeaderDumper)
    server.serve_forever()
    

    然后在 shell 中使用python3 运行该脚本。

    然后只需运行您的客户端脚本,使用 http://my.host.ip 而不是 http://www.python.org,然后查看脚本转储到服务器 shell 的内容。

    【讨论】:

    • 好的,我已经理解了客户端/服务器的技巧。而且我记得 $_SERVER[] PHP var (lol) 但是你写的那个服务器会一直在监听一个新的 get 请求。我猜在 127.0.0.1:8123 上。这就是 HeaderDumper() 的作用,对吧?
    • @JesúsFlores:嗯,它监听0.0.0.0:8123,而不仅仅是127.0.0.1:8123,这就是代理可以连接到它的原因(假设它在一个可访问的IP地址上)。但除此之外,是的,它是一个永远监听新获取请求的服务器(并以其当前目录的目录列表进行响应),并且除了将正常的127.0.0.1 - - [17/May/2015 17:49:49] "GET / HTTP/1.1" 200 - 日志行打印到终端之外,它还打印出所有它看到的标题。
    • 太棒了! :D 感谢分享知识。
    猜你喜欢
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多