为什么代理服务器使用我的私有IP?

Why does the proxy server use my private IP?

我正在尝试使用代理进行抓取(此代理服务器是来自互联网的免费代理服务器);特别是我想使用他们的 IP,而不是我的私人 IP。为了测试我的脚本,我尝试访问“http://whatismyipaddress.com/”以查看该站点看到的 IP。事实证明,它会看到我的私人 IP。有人可以告诉我这里有什么问题吗?

import requests
from fake_useragent import UserAgent

def getMyIP(proxyServer,myPrivateIP):

    scrape_website = "http://whatismyipaddress.com/"

    ua = UserAgent()
    headers = {'User-Agent': ua.random}
    
    try:
        response = requests.get(scrape_website,headers=headers,proxies={"https":proxyServer})
    except:
        faultString = proxyServer + " did not work; " + "\n" 
        print(faultString)
        return
    
    if myPrivateIP in str(response.content):
        print("They found my private IP.")

proxyServer = "http://103.250.158.23:61219"
myPrivateIP = "xxx.xxx.xxx.xxx"
getMyIP(proxyServer,myPrivateIP)

两件事:

  1. 您设置了 {'https': ...} 代理配置。这意味着对于任何 HTTPS 请求,它将使用该代理。但是,您请求的是 HTTP URL,因此不会使用该代理。改为或另外配置 'http' 代理。
  2. 如果 代理在 HTTP header 中转发您的 IP,并且目标服务器注意到 header,那就是运气不好,您无能为力除了使用不转发您的 IP 的其他代理之外,还有其他任何事情。我认为第 1 点更有可能是问题所在。