要使用Python來模擬抓包工具,可以使用scapy
庫。下面是一個簡單的示例代碼,演示了如何使用Python和scapy來模擬抓包工具:
from scapy.all import *
def packet_handler(packet):
if packet.haslayer(TCP):
src_ip = packet[IP].src
dst_ip = packet[IP].dst
src_port = packet[TCP].sport
dst_port = packet[TCP].dport
print(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)
在上面的代碼中,我們首先導入了scapy
庫,然后定義了一個packet_handler
函數來處理捕獲到的數據包。在這個示例中,我們只處理TCP數據包,并打印出源IP、目標IP、源端口和目標端口。
最后,我們使用sniff
函數來開始捕獲數據包。filter
參數可以用于過濾數據包,prn
參數指定了捕獲到數據包時要調用的處理函數,count
參數指定了要捕獲的數據包數量。
運行這個示例代碼后,它將開始捕獲數據包,并將打印出每個捕獲到的TCP數據包的源IP、目標IP、源端口和目標端口。你可以根據需要自定義packet_handler
函數來處理數據包。