2024-04-25 13:03:49 发布
网友
我正在使用socket,试图了解如何找到好的格式字符来解包以太网帧。在
例如,要解压缩以太网帧,可以执行以下操作:
struct.unpack("! 6s 6s H", data[0:14])
我们怎么知道是“6s 6s H”?在
以太网数据包包括
MAC地址是48位或6字节长。类型是一个1字节的字段。在
如果我对这些标题有疑问,我使用Wireshark并查看其解释。它们还有一个wiki来解释结构。在
在您的字符串中,!告诉您在解包时使用标准大小和网络endianness(big endian),6s使用6个字符为目标地址构建一个字符串,6s获取源地址,H接受类型的无符号缩写。在
!
6s
H
您可以在7.3.2.2 of the Python documentation和7.3.2.1中找到格式字符
以太网数据包包括
MAC地址是48位或6字节长。类型是一个1字节的字段。在
如果我对这些标题有疑问,我使用Wireshark并查看其解释。它们还有一个wiki来解释结构。在
在您的字符串中,
!
告诉您在解包时使用标准大小和网络endianness(big endian),6s
使用6个字符为目标地址构建一个字符串,6s
获取源地址,H
接受类型的无符号缩写。在您可以在7.3.2.2 of the Python documentation和7.3.2.1中找到格式字符
相关问题 更多 >
编程相关推荐