from winpcapy import WinPcapDevices
from winpcapy import WinPcapUtils
import dpkt
import time
import datetime
# list_device = WinPcapDevices.list_devices()
# print(list_device)
def packet_callback(win_pcap, param, header, pkt_data):
eth = dpkt.ethernet.Ethernet(pkt_data)
# # 判断是否为IP数据报
if not isinstance(eth.data, dpkt.ip.IP):
print("Non IP packet type not supported ", eth.data.__class__.__name__)
return
# 抓IP数据包
packet = eth.data
# 取出分片信息
df = bool(packet.off & dpkt.ip.IP_DF)
mf = bool(packet.off & dpkt.ip.IP_MF)
offset = packet.off & dpkt.ip.IP_OFFMASK
# 输出数据包信息:time,src,dst,protocol,length,ttl,df,mf,offset,checksum
output1 = {'time':time.strftime('%Y-%m-%d %H:%M:%S',(time.localtime()))}
output2 = {'src':'%d.%d.%d.%d'%tuple(packet.src) , 'dst':'%d.%d.%d.%d'%tuple(packet.dst)}
output3 = {'protocol':packet.p, 'len':packet.len, 'ttl':packet.ttl}
output4 = {'df':df, 'mf':mf, 'offset':offset, 'checksum':packet.sum}
print()
print(output1)
print(output2)
print(output3)
print(output4)
#WinPcapUtils.capture_on(pattern="Realtek PCIe GBE Family Controller", callback=packet_callback)
WinPcapUtils.capture_on(pattern="Intel(R) Dual Band Wireless-AC 3165", callback=packet_callback)
from winpcapy import WinPcapDevices
from winpcapy import WinPcapUtils
import dpkt
import time
import datetime
# list_device = WinPcapDevices.list_devices()
# print(list_device)
def packet_callback(win_pcap, param, header, pkt_data):
eth = dpkt.ethernet.Ethernet(pkt_data)
# # 判断是否为IP数据报
if not isinstance(eth.data, dpkt.ip.IP):
print("Non IP packet type not supported ", eth.data.__class__.__name__)
return
# 抓IP数据包
packet = eth.data
# 取出分片信息
df = bool(packet.off & dpkt.ip.IP_DF)
mf = bool(packet.off & dpkt.ip.IP_MF)
offset = packet.off & dpkt.ip.IP_OFFMASK
# 输出数据包信息:time,src,dst,protocol,length,ttl,df,mf,offset,checksum
output1 = {'time':time.strftime('%Y-%m-%d %H:%M:%S',(time.localtime()))}
output2 = {'src':'%d.%d.%d.%d'%tuple(packet.src) , 'dst':'%d.%d.%d.%d'%tuple(packet.dst)}
output3 = {'protocol':packet.p, 'len':packet.len, 'ttl':packet.ttl}
output4 = {'df':df, 'mf':mf, 'offset':offset, 'checksum':packet.sum}
print()
print(output1)
print(output2)
print(output3)
print(output4)
#WinPcapUtils.capture_on(pattern="Realtek PCIe GBE Family Controller", callback=packet_callback)
WinPcapUtils.capture_on(pattern="Intel(R) Ethernet Connection I219-V", callback=packet_callback)
from winpcapy import WinPcapDevices
from winpcapy import WinPcapUtils
import dpkt
import time
import datetime,sys
# list_device = WinPcapDevices.list_devices()
# print(list_device)
def packet_callback(win_pcap, param, header, pkt_data):
eth = dpkt.ethernet.Ethernet(pkt_data)
# # 判断是否为IP数据报
if not isinstance(eth.data, dpkt.ip.IP):
print("Non IP packet type not supported ", eth.data.__class__.__name__)
return
# 抓IP数据包
packet = eth.data
print(packet)
print(type(eth))
print(type(eth.data))
print(type(eth.data.data))
print(type(eth.data.data.data))
print(eth)
print(eth.data.__bytes__())
print(eth.data.__len__())
print(eth.data.src.hex())
print(eth.data.data.ulen)
if not isinstance(eth.data, dpkt.ip.IP): #解包,网络层,判断网络层是否存在,
pass
ip = eth.data
if not isinstance(ip.data, dpkt.udp.UDP): #解包,判断传输层协议是否是TCP,即当你只需要TCP时,可用来过滤
pass
# if not isinstance(ip.data, dpkt.udp.UDP):#解包,判断传输层协议是否是UDP
# continue
udp_data = eth.data.data #传输层负载数据,基本上分析流量的人都是分析这部分数据,即应用层负载流量
if not len(udp_data.data): #如果应用层负载长度为0,即该包为单纯的tcp包,没有负载,则丢弃
pass
all_pcap_data[ts]= eth.data.data.data #将时间戳与应用层负载按字典形式有序放入字典中,方便后续分析.
print(all_pcap_data[ts])
all_pcap_data_hex[ts]=udp_data.data.hex()
# 取出分片信息
df = bool(packet.off & dpkt.ip.IP_DF)
mf = bool(packet.off & dpkt.ip.IP_MF)
offset = packet.off & dpkt.ip.IP_OFFMASK
# 输出数据包信息:time,src,dst,protocol,length,ttl,df,mf,offset,checksum
output1 = {'time':time.strftime('%Y-%m-%d %H:%M:%S',(time.localtime()))}
output2 = {'src':'%d.%d.%d.%d'%tuple(packet.src) , 'dst':'%d.%d.%d.%d'%tuple(packet.dst)}
output3 = {'protocol':packet.p, 'len':packet.len, 'ttl':packet.ttl}
output4 = {'df':df, 'mf':mf, 'offset':offset, 'checksum':packet.sum}
print()
print(output1)
print(output2)
print(output3)
print(output4)
sys.exit(0)
#WinPcapUtils.capture_on(pattern="Realtek PCIe GBE Family Controller", callback=packet_callback)
WinPcapUtils.capture_on(pattern="Realtek PCIe GbE Family Controller", callback=packet_callback)