是否可以使用任何SOCKS客户端lib在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
代码也无效,则不会尝试在任何地方进行连接。
答案 0 :(得分:2)
您是否尝试过使用connect()和send()而不是sendto()?从SocksiPy源代码来看,没有实现无连接模式。
修改:
req = struct.pack('BBB', 0x05, 0x01, 0x00)
TCP流连接(0x01)似乎是硬编码的。 SocksiPy不会起作用。
答案 1 :(得分:0)
你试过这个:
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "socks.proxy.lan", 8080, True)
使用端口替换8080,如果要启用rdns,则“True”为True。
如果您使用的是Python 3及更高版本,我建议您使用PySocks,它将是
socks.set_default_proxy(socks.PROXY_TYPE_SOCKS5, "socks.proxy.lan", 8080, True)