使用Python进行网络抓包可以通过多种库实现,以下是使用Scapy库进行抓包的简单示例:
from scapy.all import *def packet_handler(packet):if packet.haslayer(TCP):src_ip = packet[IP].srcdst_ip = packet[IP].dstsrc_port = packet[TCP].sportdst_port = packet[TCP].dportprint(f"Source IP: {src_ip} , Destination IP: {dst_ip}")print(f"Source Port: {src_port} , Destination Port: {dst_port}")使用sniff函数进行抓包,参数count表示要捕获的数据包数量sniff(filter="tcp", prn=packet_handler, count=10)
这段代码会捕获TCP数据包,并打印出源IP、目标IP、源端口和目标端口。
如果你想使用其他库,比如Pyshark或tcpdump,可以分别参考以下示例:
Pyshark:

import pysharkcap = pyshark.FileCapture('sample.pcap')for pkt in cap:print(pkt)
tcpdump:
import subprocessproc = subprocess.Popen(["tcpdump", "-i", "eth0", "-c", "10"], stdout=subprocess.PIPE)for line in iter(proc.stdout.readline, ''):print(line)
这些示例展示了如何使用Pyshark和tcpdump库进行数据包捕获。
请注意,抓取网络数据包可能需要相应的权限,并且在使用抓包工具时,请确保遵守相关法律法规和隐私政策
