7

是否可以使用任何 SOCKS 客户端库在 Python 中通过 SOCKS5 代理发送 UDP 数据报?SocksiPy 似乎不起作用,或者我只是用错了。以下代码不起作用,它尝试直接连接到目标:

s = socks.socksocket ( socket.AF_INET, socket.SOCK_DGRAM )
s.setproxy(socks.PROXY_TYPE_SOCKS5,"socks.proxy.lan")
s.sendto ( payload, ( ip, port ) )

如果我更改SOCK_DGRAM代码SOCK_STREAM也不起作用,那么它不会尝试连接任何地方。

4

2 回答 2

2

您是否尝试过使用 connect() 和 send() 而不是 sendto()?从 SocksiPy 源码来看,没有实现无连接模式。

编辑

req = struct.pack('BBB', 0x05, 0x01, 0x00)

TCP 流连接 (0x01) 似乎在这里被硬编码。SocksiPy 是行不通的。

于 2012-06-15T15:01:48.533 回答
0

你有没有试过这个:

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "socks.proxy.lan", 8080, True)

如果要启用 rdns,请将 8080 替换为端口,“True”为 True。

如果您使用 Python 3 及更高版本,我建议您使用 PySocks,它会是

socks.set_default_proxy(socks.PROXY_TYPE_SOCKS5, "socks.proxy.lan", 8080, True)
于 2014-02-22T17:55:45.260 回答