Python中检查是否为高匿名代理的方法有哪些?

目前我用 https://icanhazip.com/来检查是否为高匿名代理,请问 V 友还有其他的方法吗?


Python中检查是否为高匿名代理的方法有哪些?
15 回复

巧了… 我也用的是 icanhazip…


要检查一个HTTP代理是否为高匿名代理,关键在于分析请求头中是否泄露了客户端真实IP信息。最直接的方法是向一个能返回请求头信息的测试端点发送请求,然后检查关键字段。

这里给你一个实用的代码示例:

import requests

def check_elite_proxy(proxy_url, test_url="http://httpbin.org/headers"):
    """
    检查代理是否为高匿名(Elite)代理
    
    :param proxy_url: 代理地址,格式如 'http://ip:port'
    :param test_url: 用于测试的端点,默认使用 httpbin.org
    :return: (bool, dict) 是否为高匿名代理,以及检测到的请求头信息
    """
    proxies = {
        "http": proxy_url,
        "https": proxy_url,
    }
    
    try:
        response = requests.get(test_url, proxies=proxies, timeout=10)
        headers = response.json().get('headers', {})
        
        # 关键检查点
        client_ip_disclosed = 'X-Forwarded-For' in headers
        via_header_present = 'Via' in headers
        proxy_connection_header = 'Proxy-Connection' in headers
        
        # 高匿名代理标准:不传递任何代理相关头部
        is_elite = not (client_ip_disclosed or via_header_present or proxy_connection_header)
        
        return is_elite, headers
        
    except Exception as e:
        print(f"检测失败: {e}")
        return False, {}

# 使用示例
if __name__ == "__main__":
    proxy = "http://123.45.67.89:8080"  # 替换为你要测试的代理
    is_elite, detected_headers = check_elite_proxy(proxy)
    
    print(f"代理 {proxy} 是否为高匿名: {is_elite}")
    print("检测到的请求头:", detected_headers)

核心检查逻辑:

  1. X-Forwarded-For:如果存在这个头,说明代理转发了客户端真实IP
  2. Via:该头会显示代理服务器信息
  3. Proxy-Connection:显式的代理连接头

高匿名代理应该完全不添加这些头部,让目标服务器认为请求是直接来自代理IP的。

其他可以考虑的检查点:

  • 检查 X-Real-IP, Client-IP 等自定义头部
  • 对比使用代理和不使用代理时 REMOTE_ADDR 的差异
  • 使用多个不同的测试端点进行交叉验证

一句话总结: 通过向测试端点发送请求并检查代理相关头部是否存在来判断匿名级别。

自己写一个检查 HTTP 头部。

http://proxyjudge.us/ 看 http 头,或者自己搞个服务

同好啊,哈哈

这个好像有点难度吧。。

thanks

自己搞一个服务,不太会这个。。

4 人回答, 14 人收藏…这个… :)

用代理发请求到你自己的 VPS ,或者开个 HTTP 服务器 UPNP 开个随机端口,然后读 HTTP 头。

出来的是我 ipv6 地址,略屌

HTTP_HOST = proxyjudge.us
HTTP_CACHE_CONTROL = max-age=0
HTTP_ACCEPT = text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
HTTP_UPGRADE_INSECURE_REQUESTS = 1
HTTP_USER_AGENT = Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0
HTTP_DNT = 1
HTTP_ACCEPT_ENCODING = gzip, deflate, sdch
HTTP_ACCEPT_LANGUAGE = zh-CN,zh;q=0.8
HTTP_CONNECTION = close
REMOTE_ADDR = SS 服务器地址
REMOTE_PORT = 57986
REQUEST_METHOD = GET
REQUEST_URI = /
REQUEST_TIME_FLOAT = 1490613559.635
REQUEST_TIME = 1490613559

好吧,其实用 https://icanhazip.com/ 挺好的,谢谢大家的回复哈

回到顶部