有没有办法使用 Python Requests 库确认 POST 请求是不是实际上是通过代理发送的?

Posted

技术标签:

【中文标题】有没有办法使用 Python Requests 库确认 POST 请求是不是实际上是通过代理发送的?【英文标题】:Is there a way to confirm if a POST request was actually sent through a proxy using the Python Requests library?有没有办法使用 Python Requests 库确认 POST 请求是否实际上是通过代理发送的? 【发布时间】:2019-06-03 12:26:53 【问题描述】:

我有一个 SOCKS5 代理列表,我从中随机选择并使用 Python 库请求发送 POST 请求。问题是我不知道如何确认代理是否实际被使用或者它是否使用了我的家庭 IP,因为成功发送具有相同代理的 GET 请求并不能保证代理实际用于 POST请求(根据我的经验)。

我试图在响应对象中找到一个标头,告诉我发件人的 IP,但我没有看到它。 我可以使用 httpbin 等在线服务测试 GET 请求的源 IP,但我找不到 POST 请求。

def register_account(captcha_response, email, password):
    proxies = random_proxy()    # Dict format: 'http': socks5://ip, 'https': socks5://ip
    try:
        response = requests.post(url=register_url, proxies=proxies, timeout=(5, 20), data=
            'email1': email,
            'onlyOneEmail': 1,
            'password1': password,
            'onlyOnePassword': 1,
            'day': '01',
            'month': '01',
            'year': 1990
            'agree_email': 1,
            'g-recaptcha-response': captcha_response,
            'create-submit': 'create'
        )
        return True
    except:
        print(f'Error: sys.exc_info()[0]')
        return False

我也愿意接受不涉及请求库的建议。

【问题讨论】:

在我看来只有一种方法可以找出答案。在某处设置一个启用了 POST 的端点的服务器并尝试一下。这可能是唯一确定的方法 您可以使用防火墙阻止除代理IP之外的所有IP。 【参考方案1】:

我通过使用此服务来测试我的 POST 请求解决了这个问题:https://webhook.site 您可以使用此检查发件人的 IP。请求也不必包含正确的字段。

【讨论】:

以上是关于有没有办法使用 Python Requests 库确认 POST 请求是不是实际上是通过代理发送的?的主要内容,如果未能解决你的问题,请参考以下文章

python requests库使用

Python——安装requests第三方库

爬虫——Requests库初识

python爬虫之requests库介绍

Python: ImportRequestsError: No module named 'requests'解决方法

python request 库