【发布时间】:2014-09-18 09:56:40
【问题描述】:
我使用 ethereal 来捕获一些数据包,并试图理解这些数据。这是其中 1 帧的输出。
0x0000: 4500 003a 4564 4000 4006 df05 0a01 012b E..:Ed@.@......+
0x0010: 0a01 0128 bfcf 3a98 e938 b9c8 e8a0 761f ...(..:..8....v.
0x0020: 8018 05b4 ef33 0000 0101 080a 0005 ff31 .....3.........1
0x0030: 0005 2c31 6865 6c6c 6f0a ..,1hello.
右边的字符是左边信息的ASCII表示(十六进制)。发送的消息是“你好”,其余信息(或至少其中一些)是标题,对吧?标题的格式是什么?我做了一些谷歌搜索,发现这张图片:http://electronicdesign.com/site-files/electronicdesign.com/files/archive/electronicdesign.com/files/29/2099/figure_03.gif。这个对吗?根据图像,字节 27-30 (761f 8018) 是目标 IP,但将十六进制转换为十进制最终不会成为我的 IP。我错过了什么还是我完全错了?另外我如何找到协议号?
【问题讨论】:
-
Ethereal 已经过时了。 Wireshark 是它的继任者。它将剖析数据包数据并向您显示所有内容。至于转换 IP,您不会将 4 个字节转换为 1 个十进制数,而是将每个字节转换为自己的十进制数。最好使用像
inet_ntoa()这样的函数,从原始字节中输出人类可读的字符串。
标签: tcp network-protocols