У меня есть этот базовый сценарий пересылки UDP в Python 3.
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-адреса и разные порты.
Мой вопрос таков -
Как сохранить исходный IP-адрес, который получает скрученный при прослушивании порта 5005?
Исходный IP-адрес (10.1.1.1) --> Twisted (10.30.1.1) --> Несколько пунктов назначения
Как я могу заставить несколько пунктов назначения видеть источник пакета, сохраненный из исходного IP-адреса (10.1.1.1)?