【发布时间】:2023-03-20 20:29:01
【问题描述】:
我在两台机器之间广播 UDP 数据包并在第三台机器上监听它们。我可以在 Wireshark 中看到数据包,并且需要任何简单的方法来获取 UDP 数据包的“数据”部分。我已经能够使用 tshark 将数据包信息转储到文件中
C:>tshark -V -R "udp" > C:/test.txt
但是,这会打印出数据包中的所有内容,而我只想打印出“数据”部分。有没有办法做到这一点?
另外,如果有一种方法可以在 Python 中捕获这一点,那也很棒。我已经设置了以下代码:
Host = "myip"
Port = 5000
While True:
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock.bind((Host,Port))
data = sock.recv(4096)
sock.close()
当我使用我的“监听”电脑实现此代码时,没有收到任何数据。 当我使用我的两台通信电脑中的一台实现此代码时,“请求的地址在其上下文中无效”
请注意,我看到所有数据都在我的“监听”电脑上的 Wireshark 中的两台电脑之间传递。
谢谢!
【问题讨论】:
-
您可以(如果允许)编辑您的帖子以使代码看起来更漂亮
标签: python sockets wireshark tshark