要使用Pyshark实时捕获网络数据包,您可以使用LiveCapture
类
import pyshark
# 创建一个LiveCapture对象,指定要捕获的网络接口(例如:eth0、enp0s3等)
capture = pyshark.LiveCapture(interface='eth0')
# 使用迭代器实时捕获数据包
for packet in capture.sniff_continuously():
# 在此处处理数据包,例如打印源IP和目标IP
print(f"Source IP: {packet.ip.src}, Destination IP: {packet.ip.dst}")
# 停止捕获
capture.close()
这个脚本将实时捕获指定网络接口上的数据包,并打印每个数据包的源IP和目标IP。请注意,您需要以root权限运行此脚本,以便能够捕获网络数据包。
如果您想要捕获特定类型的数据包(例如,仅捕获TCP数据包),可以在LiveCapture
对象中添加bpf_filter
参数。例如:
capture = pyshark.LiveCapture(interface='eth0', bpf_filter='tcp')
这将仅捕获TCP数据包。您可以根据需要修改BPF过滤器以捕获其他类型的数据包。
领取专属 10元无门槛券
手把手带您无忧上云