Как подключиться к сайту через ipv6 https прокси - PullRequest
0 голосов
/ 18 марта 2019
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 для подключения к веб-сайту, я бы хотел подключиться с помощью https-прокси ipv6. Я искал в Google ответы и не нашел ни одного (что я понимаю) ... Ближайший, что я нашел, это ... (не использует прокси-сервер ipv6, вместо этого использует мой собственный ipv6). Я открыт для использования чего-то кроме запросов, чтобы сделать это, однако, запросы предпочтительнее. Я буду пытаться нарезать нить позже.

1 Ответ

0 голосов
/ 18 марта 2019
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)

Это мой текущий провайдер для моего https-прокси ipv6, однако они используют ipv6 поверх ipv4 для своих клиентов, поэтому вот почемукод работает, а вышеприведенный код - нет (если используется один и тот же поставщик). Если вы используете поставщика, который поддерживает ipv6 сам по себе, то код в верхней части должен работать для вас.

...