【发布时间】:2019-07-12 14:25:23
【问题描述】:
我在Python中有以下UDP/DGRAMsocket:
sock.bind((UDP_IP, UDP_PORT))
while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print "received message:", data
此代码在代理服务器中运行,因此目标 IP 和端口与套接字不匹配。我正在使用tproxy 拦截数据包。
如何获取目标 IP 和端口,而不是源 IP 和端口?
【问题讨论】:
-
我想我已经回答了你的问题,但可能会误解你。您刚刚将套接字绑定到一个地址/端口,并且您已经获得了另一端的地址(在
addr中),因此您已经获得了两条信息。 -
它没有给我数据包的目标 IP 和端口。只有套接字正在侦听的内容,以及来自数据包的源 IP 和端口。此代码在代理服务器中运行,因此目标 IP 和端口与套接字不匹配。我正在使用
tproxy拦截数据包。 -
如果
recv_msg()存在于Python中,您需要使用它,无论选择是检索源地址。 -
这个问题似乎已经在这里得到了回答:stackoverflow.com/a/44206723/1358308
标签: python sockets networking