解码数据包返回负十六进制值

时间:2017-03-15 22:26:48

标签: python packet ethernet

尝试使用我正在使用的硬件库中包含的函数在python中解码以太网帧。我正在尝试使用已知的src mac地址00:1b:21:bb:c2:40来解码数据包。

当收到数据包时,我循环每个16位并试图吐出一个十六进制输出,产生以下结果:

-1 -1 -1 -1 -1 -1 00 1b 21 -45 -3e 40 08 06 00 01
08 00 06 04 00 01 00 1b 21 -45 -3e 40 01 01 01 01
00 00 00 00 00 00 01 01 01 02 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 -1e 5b -67 -50

尽管bb and c2由于某种原因返回负值,但mac地址仍隐藏在那里。打印来自:

        for i in xrange(packet.pktData.size):
          if ((i != 0) and ((i % 16) == 0)):
            print
          print "%02x" % BuffDesc_getbyte(packet.pktData, i),
        print

除了以下内容之外,我找不到关于BuffDesc_getbyte返回的大量(任何)细节:

def BuffDesc_getbyte(*args):
  """BuffDesc_getbyte(ofdpa_buffdesc buffdesc, int offset) -> int"""
  return _OFDPA_python.BuffDesc_getbyte(*args)

我的python-foo非常糟糕,所以请原谅我的天真

0 个答案:

没有答案