Python 抓包是一種常見的網絡工具,可以用來分析網絡數據包并提取特定信息。下面我們來學習如何使用 Python 抓包:
# 首先我們需要安裝必要的模塊 pip install scapy pip install tshark # 導入模塊 from scapy.all import * from scapy.layers.l2 import Ether from scapy.layers.inet import IP, TCP # 定義函數進行抓包 def sniff_packet(packet): # 過濾條件可以根據需求自己修改,下面以 TCP 數據包為例 if packet.haslayer(TCP): # 提取源 IP 和目標 IP src_ip = packet[IP].src dst_ip = packet[IP].dst # 提取源端口和目標端口 src_port = packet[TCP].sport dst_port = packet[TCP].dport # 提取數據 data = packet[TCP].payload.load print("源IP:%s,目的IP:%s,源端口:%s,目標端口:%s,數據:%s" % (src_ip, dst_ip, src_port, dst_port, data)) # 開始抓包 sniff(prn=sniff_packet)
上面的代碼中我們使用了 Scapy 庫來進行抓包,并通過參數 prn 傳入了抓包處理函數,該函數會在每個抓到的數據包上被調用。
所以在執行這個腳本時,每當有一個 TCP 數據包被抓到,它的源 IP、目標 IP、源端口、目標端口以及數據就會被打印出來。