【发布时间】:2014-11-15 01:04:52
【问题描述】:
我在 Python 3 中有这个基本的 UDP 转发脚本。
from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor
class Forward(DatagramProtocol):
def __init__(self, targetTuples):
print ('in init, targetTuples are ', targetTuples)
self._targetTuples = targetTuples
def datagramReceived(self, data, hostAndPort):
print ('self._targetTuples is ', self._targetTuples)
for (targetHost, targetPort) in self._targetTuples:
self.transport.write(data, (targetHost, targetPort))
reactor.listenUDP(5005, Forward([('10.35.203.24', 5000), ('10.35.200.251', 5005)]))
reactor.run()
所以我正在侦听端口 5005 UDP,并将这些数据包转发到两个 IP 地址和不同的端口。
我的问题是这个 -
如何保留twisted在5005端口监听时获得的原始IP地址?
源 IP (10.1.1.1) --> Twisted (10.30.1.1) --> 多个目标
如何获取 Multiple Destinations 以查看从 (10.1.1.1) 的源 IP 保留的数据包源?
【问题讨论】:
标签: python networking udp twisted packets