以太网¶
- class os_ken.lib.packet.ethernet.ethernet(dst='ff:ff:ff:ff:ff:ff', src='00:00:00:00:00:00', ethertype=2048)¶
以太网头部编码/解码类。
一个实例至少具有以下属性。MAC 地址表示为类似于 '08:60:6e:7f:74:e7' 的字符串。__init__ 按照此顺序接收相应的参数。
属性
描述
示例
dst
目标地址
'ff:ff:ff:ff:ff:ff'
src
源地址
'08:60:6e:7f:74:e7'
ethertype
以太类型
0x0800
- classmethod get_packet_type(type_)¶
覆盖以太网 IEEE802.3 长度/类型字段 (self.ethertype) 的方法。
如果长度/类型字段的值小于或等于 1500 十进制 (05DC 十六进制),则表示长度解释,并传递到 LLC 子层。
- classmethod parser(buf)¶
解码协议头。
此方法仅在解码数据包时使用。
在字节数组 buf 的偏移量 0 处解码协议头。返回以下三个对象:
一个描述解码后的头对象。
一个适当于数据包其余部分的 packet_base.PacketBase 子类。如果数据包的其余部分应被视为原始有效负载,则为 None。
数据包的其余部分。
- serialize(payload, prev)¶
编码协议头。
此方法仅在编码数据包时使用。
编码协议头。返回一个包含头的字节数组。
payload 是将立即跟随此头的其余数据包。
prev 是外部协议头的 packet_base.PacketBase 子类。如果当前头是外部头,则 prev 为 None。例如,对于 tcp.serialize,prev 是 ipv4 或 ipv6。