如何使用 socks5 用户名和密码发出 requesocks 请求?
How do I make a requesocks request with socks5 username and password?
我目前使用它连接到 socks5 代理和 paramiko。
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,socks_hostname,socks_port, True, socks_username,socks_password)
paramiko.client.socket.socket = socks.socksocket
ssh = paramiko.SSHClient()
但是,我希望在 python 中使用 requesocks 和 paramiko 的相同代理设置发出一些请求,但找不到任何关于用户名和密码的内容。
此外,所有请求每次都使用不同的 socks 连接完成,全局设置可能会妨碍我的其他连接。
关于如何做到这一点或者是否有替代方案的任何想法?
我当前的实现非常频繁地使用 python 请求,因此从那里过渡到 requesocks 会很好,这样我就不必重构所有内容。
注意:How to make python Requests work via socks proxy 不起作用,因为它不使用 socks5 身份验证。
您可以使用 PySocks:
pip install PySocks
然后在您的 python 文件中:
import socket
import socks
import requests
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9050, True, 'socks5_user','socks_pass')
socket.socket = socks.socksocket
print(requests.get('http://ifconfig.me/ip').text)
对我有用。但是我遇到了另一个问题,即对不同的请求会话使用不同的 socks5 代理。如果有人对此有解决方案,请贡献。
现代方式:
pip install -U requests[socks]
然后
import requests
resp = requests.get('http://go.to',
proxies=dict(http='socks5://user:pass@host:port',
https='socks5://user:pass@host:port'))
我目前使用它连接到 socks5 代理和 paramiko。
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,socks_hostname,socks_port, True, socks_username,socks_password)
paramiko.client.socket.socket = socks.socksocket
ssh = paramiko.SSHClient()
但是,我希望在 python 中使用 requesocks 和 paramiko 的相同代理设置发出一些请求,但找不到任何关于用户名和密码的内容。
此外,所有请求每次都使用不同的 socks 连接完成,全局设置可能会妨碍我的其他连接。
关于如何做到这一点或者是否有替代方案的任何想法? 我当前的实现非常频繁地使用 python 请求,因此从那里过渡到 requesocks 会很好,这样我就不必重构所有内容。
注意:How to make python Requests work via socks proxy 不起作用,因为它不使用 socks5 身份验证。
您可以使用 PySocks:
pip install PySocks
然后在您的 python 文件中:
import socket
import socks
import requests
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9050, True, 'socks5_user','socks_pass')
socket.socket = socks.socksocket
print(requests.get('http://ifconfig.me/ip').text)
对我有用。但是我遇到了另一个问题,即对不同的请求会话使用不同的 socks5 代理。如果有人对此有解决方案,请贡献。
现代方式:
pip install -U requests[socks]
然后
import requests
resp = requests.get('http://go.to',
proxies=dict(http='socks5://user:pass@host:port',
https='socks5://user:pass@host:port'))