2015-11-29 9 views
1

Я пытаюсь получить заголовок расширения ipv6 из пакета pcap с помощью dpkt и распечатать его. Но почему-то это не сработало. Я пробовал много разных способов. вот часть кода, вызывающего проблему. есть ли у кого-нибудь идея, как это решить? пса есть отсутствие примеров коды относительно dpkt для ipv6dpkt ipv6 extension header

# 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 

UPDATE: когда я использую dpkt.ip6.IP6FragmentHeader я получаю эту ошибку

AttributeError: 'str' object has no attribute 'IP6FragmentHeader'

Я хочу, чтобы получить заголовок фрагментации из этого пакета, is ICMPv6 wireshark packet

ответ

0

Я нашел проблему, и это было связано с версией, которую я использую. Я обновил версию, и проблема была решена.

С уважением