[英]Python cannot bind requests to network interface
我無法使用請求代理通過本地IP 192.168.1.55連接到https是我的本地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
結果:
requests.exceptions.ProxyError:HTTPSConnectionPool(host ='www.google.com',端口= 443):url超過了最大重試次數:/(由ProxyError((無法連接到代理。)引起,錯誤('隧道連接失敗: 400錯誤的請求',)))
我還嘗試了支持HTTPS協議的外部VPN服務器,即使https代理行未隱藏,它也能正常工作
我有多個IP,並且想在請求中使用指定的ip。 我正在python 2.7的Win 10上運行它,我懷疑這是由於SSL問題引起的,請在此處進行確認。 (我認為我沒有正確處理SSL)我嘗試了許多方法來處理SSL,但到目前為止還沒有碰到運氣。
您可以嘗試使用此方法將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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.