如何在使用iptables REDIRECT时获取UDP包的原始目标地址

时间:2013-12-04 16:35:02

标签: python sockets udp twisted iptables

我正在编写一个代理程序,它在客户端应该从本地计算机获取发往任意主机和端口的包,并将它们转发到将进一步处理它们的接收服务器。使用iptables将所有相关流量重定向到客户端侦听端口。

在客户端,我需要记录此程序截获的所有连接的原始目标地址和端口。 使用此代码(快照)的TCP没有问题:

    class MyProtocol(Protocol, object):
        def dataReceived(self, data):
            dst_info = self.transport.socket.getsockopt(socket.SOL_IP, 80, 16)
            dst_port = sint(dst_info[2:4])
            dst_addr = socket.inet_ntoa(dst_info[4:8])

然而,这种方法无法与UDP一起使用,而且它接缝我不够熟练,无法解决这个问题。有人能指出我如何使用twisted获取UDP数据报的原始目标地址? 一些指针甚至代码片段将不胜感激。

0 个答案:

没有答案
相关问题