Python не может привязывать запросы к сетевому интерфейсу - PullRequest
0 голосов
/ 30 ноября 2018

Я не могу использовать прокси-запрос для подключения к https с моим локальным ip. 192.168.1.55 - это мой локальный ip

, если я скрываю строку https для прокси-сервера, он работает, но я знаю, что он на самом деле не используетпрокси

import requests

ipAddress = '192.168.1.55:80'
proxies = {
  "http": "%s" % ipAddress,
  #"https": "%s" % ipAddress,
}

url = 'https://www.google.com'
res = requests.get(url, proxies=proxies)
print res

Результат: Ответ [200]

import requests

ipAddress = '192.168.1.55:80'
proxies = {
  "http": "%s" % ipAddress,
  "https": "%s" % ipAddress,
}

url = 'https://www.google.com'
res = requests.get(url, proxies=proxies)
print res

Результат:

reports.exceptions.ProxyError: HTTPSConnectionPool (host = 'www.google.com', порт = 443): максимальное количество повторных попыток превышено с помощью url: / (вызвано ProxyError («Невозможно подключиться к прокси-серверу», ошибка («Сбой туннельного соединения: 400 неверный запрос»,)))

Я такжепробовал внешний VPN-сервер, поддерживающий протокол HTTPS, даже прокси-линия https не скрывается, она будет работать

У меня несколько IP-адресов и я хотел бы использовать указанный ip с запросом.Я запускаю его на Win 10 с python 2.7, и я подозреваю, что это связано с проблемой SSL, но это еще не подтверждено.(я думаю, что я не имел дело с SSL должным образом) Я пробовал много способов иметь дело с SSL, но пока не повезло.

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете попробовать это связать requests с выбранным адаптером / IP, но сначала установите requests_toolbelt

pip install requests_toolbelt

, затем

import requests
from requests_toolbelt.adapters.source import SourceAddressAdapter

# default binding
response = requests.get('https://ip.tyk.nu/').text
print(response)

# bind to 192.168.1.55
session = requests.Session()
session.mount('http://', SourceAddressAdapter('192.168.1.55'))
session.mount('https://', SourceAddressAdapter('192.168.1.55'))
response = session.get('https://ip.tyk.nu/').text
print(response)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...