Хотелось бы узнать, есть ли возможность использовать прозрачный прокси в пределах Python для UDP. Мой сокет определяется следующим образом:
sock.setsockopt(socket.SOL_IP, IP_TRANSPARENT, 1)
sock.setsockopt(socket.SOL_IP, SO_ORIGINAL_DST, 1)
, где
IP_TRANSPARENT (19) and SO_ORIGINAL_DST (20)
- константы. Теперь я хотел бы получить оригинальный IP и порт этого сокета. Для TCP это работает так sock.getsockname()
, но не работает для сокета udp. Конечно, сначала я делаю что-то вроде этого:
iptables -t mangle -I PREROUTING -d {ip} -p UDP --dport 20000:21000 -j TPROXY --on-port=8173 --on-ip={ip}