是否有可能使用任何SOCKS客户端的lib在SOCKS5代理发送UDP数据包在Python? 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
代码也不起作用,它不会尝试任何地方连接即可。
你有没有试过用连接()和send()代替的sendto()? 从SocksiPy源代码来看,无连接模式尚未实现。
编辑 :
req = struct.pack('BBB', 0x05, 0x01, 0x00)
TCP流连接(0×01)似乎在这里硬编码。 SocksiPy因为它不会起作用。
你有没有试过这样:
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "socks.proxy.lan", 8080, True)
与端口和“真”取代8080,如果你想启用RDNS为True。
如果你正在使用Python版本3及以上我建议你使用PySocks,这将是
socks.set_default_proxy(socks.PROXY_TYPE_SOCKS5, "socks.proxy.lan", 8080, True)