在用 python 写一个抓包程序,把整个以太网数据包作为 string 读进来,其中 12 和 13 字节组合在一起应该是一个短整形(以太网帧里面的类型字段),假如我这个 string 叫做 header ,这个值应该是 header[12:14],怎么样可以把他当作一个整数读进来?
用 int()直接转会报错:
self.type_ = socket.ntohs (int(seg[12:14]))
ValueError: invalid literal for int() with base 10: '\x08\x06'
C 里面是很简单,创建一个 short 的类型的指针直接指向这个地址: unsigned short * p = (unsigned short *)&header[12]
对 python 不太熟,愣是没找到这该怎么处理。
用 int()直接转会报错:
self.type_ = socket.ntohs (int(seg[12:14]))
ValueError: invalid literal for int() with base 10: '\x08\x06'
C 里面是很简单,创建一个 short 的类型的指针直接指向这个地址: unsigned short * p = (unsigned short *)&header[12]
对 python 不太熟,愣是没找到这该怎么处理。