首页 > 解决方案 > 如何使用 ipv6 https 代理连接到网站

问题描述

import requests
import socket
from unittest.mock import patch


orig_getaddrinfo = socket.getaddrinfo
def getaddrinfoIPv6(host, port, family=0, type=0, proto=0, flags=0):
    return orig_getaddrinfo(host=host, port=port, family=socket.AF_INET6, type=type, proto=proto, flags=flags)

with patch('socket.getaddrinfo', side_effect=getaddrinfoIPv6):
    r = requests.get('http://icanhazip.com')
    print(r.text)

我不想使用 ipv4 代理连接到网站,而是想使用 ipv6 https 代理进行连接。我已经在谷歌上搜索了答案,但没有找到任何答案(据我所知)......我找到的最接近的是......(不使用 ipv6 代理,而是使用我自己的 ipv6)。我愿意使用除了请求之外的其他东西来执行此操作,但是,请求是首选。稍后我将尝试线程。

标签: pythonproxyipv6

解决方案


import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning


requests.packages.urllib3.disable_warnings(InsecureRequestWarning)


proxy = {"http":"http://username:password@[2604:0180:2:3b5:9ebc:64e9:166c:d9f9]", "https":"https://username:password@[2604:0180:2:3b5:9ebc:64e9:166c:d9f9]"}

url = "https://icanhazip.com"

r = requests.get(url, proxies=proxy, verify=False)

print(r.content)

如果上面的代码不起作用

import requests

proxy = {"http": "http://userame:password@168.235.109.30:18117", "https":"https://userame:password@168.235.109.30:18117"}

url = "https://icanhazip.com"

r = requests.get(url, proxies=proxy)

print(r.content)

这是我的 ipv6 https 代理的当前提供程序,但是,他们使用 ipv6 而不是 ipv4 到他们的客户端,所以这就是此代码有效的原因,而上面的代码不起作用(如果使用相同的提供程序)如果您使用的提供程序完全支持 ipv6,那么顶部的代码应该适合你。


推荐阅读