$ 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