$ brew install shark $ pip install pyshark
import pyshark def read_pcaps_shark(pcap_path): ''' 使用shark来读取pcap包 ''' pcap = pyshark.FileCapture(pcap_path) # print(pcap[0]) for pkt in pcap: print(pkt.captured_length) print(pkt.highest_layer) print(pkt.length) print(pkt.number) print(pkt.sniff_timestamp) print(pkt.eth) print(pkt.ip) print(pkt.frame_info) print(pkt.sniff_time) print(pkt.tcp) break if __name__ == "__main__": pcap_path = "../datasets/USTC-TFC2016/Benign/Weibo/Weibo-1.pcap" read_pcaps_shark(pcap_path) # read_pcap_dpkt(pcap_path)
d4c3 b2a1 0200 0400 0000 0000 0000 0000 ff7f 0000 0100 0000 # Global Header e5da c850 fbdc 0800 2a00 0000 2a00 0000 # Packet Header ffff ffff ffff 0000 0000 0000 0800 4500 001c 0001 0000 4032 7cad 7f00 0001 7f00 0001 0102 0304 0000 0001 # Packet Data eada c850 6d02 0100 2a00 0000 2a00 0000 # Packet Header ffff ffff ffff 0000 0000 0000 0800 4500 001c 0002 0000 4032 7cac 7f00 0001 7f00 0001 0102 0304 0000 0002 # Packet Data eeda c850 9824 0800 2a00 0000 2a00 0000 # Packet Header ffff ffff ffff 0000 0000 0000 0800 4500 001c 0003 0000 4032 7cab 7f00 0001 7f00 0001 0102 0304 0000 0003 # Packet Data f3da c850 250c 0100 2a00 0000 2a00 0000 # Packet Header ffff ffff ffff 0000 0000 0000 0800 4500 001c 0004 0000 4032 7caa 7f00 0001 7f00 0001 0102 0304 0000 0004 # Packet Data 2bdc c850 7952 0500 2a00 0000 2a00 0000 # Packet Header ffff ffff ffff 0000 0000 0000 0800 4500 001c 2710 0000 4032 559e 7f00 0001 7f00 0001 0102 0304 0000 2710 # Packet Data第二段
e5da c850 fbdc 0800 2a00 0000 2a00 0000 ffff ffff ffff 0000 0000 0000 0800 4500 001c 0001 0000 4032 7cad 7f00 0001 7f00 0001 0102 0304 0000 0001
e5da c850 就是时间戳的高位 fbdc 0800 就是时间戳的低位 2a00 0000 就是数据包的大小,十六进制,转换成十进制,就是42 Byte 2a00 0000 就是抓到的包的大小 ffff ffff ffff 0000 0000 0000 0800 4500 001c 0001 0000 4032 7cad 7f00 0001 7f00 0001 0102 0304 0000 0001 就是数据包,长度一共是 42 Byte