0

我在两台机器之间广播 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 中的两台电脑之间传递。

谢谢!

4

1 回答 1

0

麦克弗莱,

如果您想在 Python 中进行嗅探和显示/解析数据包,Scapy 是您的最佳选择。只需放弃 tshark,因为 Scapy 可以自动完成 tshark 开箱即用的 99%。

于 2012-04-28T06:47:24.393 回答