簡體   English   中英

Python無法將請求綁定到網絡接口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM