我使用PCAP正在写的Python程序来构建MAC地址缓存。但是对于蟒蛇PCAP模块没有好的文档。我发现这个网页。 http://pylibpcap.sourceforge.net/ ,提供的代码示例,它工作正常。

任何人可以修改本实施例中,使其能够显示所述源MAC地址为每个分组?或指向我的文档,我可以读到它......

<强>更新

下面是一个代码部分,其中关于MAC地址信息被切断。

def print_packet(pktlen, data, timestamp):
  if not data:
    return

  if data[12:14]=='\x08\x00':
    decoded=decode_ip_packet(data[14:])
    print '\n%s.%f %s > %s' % (time.strftime('%H:%M',
                                           time.localtime(timestamp)),
                             timestamp % 60,
                             decoded['source_address'],
                             decoded['destination_address'])
    for key in ['version', 'header_len', 'tos', 'total_len', 'id',
                'flags', 'fragment_offset', 'ttl']:
      print '  %s: %d' % (key, decoded[key])
    print '  protocol: %s' % protocols[decoded['protocol']]
    print '  header checksum: %d' % decoded['checksum']
    print '  data:'
    dumphex(decoded['data'])
在数据

首先14个八位位组是目的地,源MAC-addr和醚型。

    decoded=decode_ip_packet(data[14:])

我需要解析他们得到这个信息。任务完成。

有帮助吗?

解决方案

谷歌“以太网帧格式”。一个分组的第一八位位组6是目的地MAC地址,该地址随后立即源MAC地址的6个八位字节。

维基百科页面可能会有帮助。

其他提示

哦,我的上帝的人,你为什么这样做?使用 Scapy的代替。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top