我正在尝试使用dpkt从packet中获取ipv6扩展头并打印出来。但出于某种原因,它不起作用。我尝试过许多不同的方法。下面是导致问题的部分代码。有没有人知道怎么解决这个问题?关于ipv6的dpkt缺乏示例代码
# For each packet in the pcap process the contents
for ts, buf in pcap:
# Unpack the Ethernet frame (mac src/dst, ethertype)
eth = dpkt.ethernet.Ethernet(buf)
# Make sure the Ethernet frame contains an IP packet
# EtherType (IP, ARP, PPPoE, IP6... see http://en.wikipedia.org/wiki/EtherType)
if eth.type != dpkt.ethernet.ETH_TYPE_IP6:
print 'Non IP Packet type not supported %s\n' % eth.data.__class__.__name__
continue
# Now unpack the data within the Ethernet frame (the IP packet)
# Pulling out src, dst, length, fragment info, TTL, and Protocol
ipv6 = eth.data
fh = dpkt.ip.IP_PROTO_FRAGMENT
ic = dpkt.ip.IP_PROTO_ICMP6
icmpv6 = ipv6.data
# get src and dst ip address
src_ip = socket.inet_ntop(AF_INET6, ipv6.src)
dst_ip = socket.inet_ntop(AF_INET6, ipv6.dst)
# Analyzing pcap file offline
#if packet.haslayer(IPv6) and pkt[IPv6].nh == 44 and dpkt.ip6.IP6FragmentHeader.nxt==60 and dpkt.ip6.IP6HopOptsHeader.nxt == 58:
if ipv6.v == 6 and ipv6.nxt==44:
print ipv6.IP6FragmentHeader.nxt更新:当我使用dpkt.ip6.IP6FragmentHeader时,我会得到这个错误
AttributeError:'str‘对象没有属性'IP6FragmentHeader’
我想从这个数据包中获取碎片报头,即ICMPv6 wireshark包
发布于 2015-12-01 20:26:35
我发现了这个问题,这与我正在使用的版本有关。我更新了版本,问题解决了。
问候
https://stackoverflow.com/questions/33989586
复制相似问题