Situatie
În acest tutorial vom crea un script Python care va monitoriza traficul de rețea și va afișa informații despre pachetele capturate folosind biblioteca scapy
.
Pasul 1: Instalarea Bibliotecii Scapy
Pentru a utiliza “scapy”, trebuie să îl instalăm mai întâi. Puteți face acest lucru folosind pip:
pip install scapy
Pasul 2: Importarea Bibliotecii Scapy
Importați biblioteca “scapy” și alte module necesare în scriptul dvs. Python.
from scapy.all import sniff, ARP, IP, TCP, UDP
Pasul 3: Definirea Funcției de Monitorizare
Creați o funcție care va fi apelată pentru fiecare pachet capturat. Această funcție va procesa pachetele și va afișa informații relevante despre acestea.
def packet_callback(packet):
if ARP in packet:
print(f”ARP Packet: {packet[ARP].summary()}”)
elif IP in packet:
ip_src = packet[IP].src
ip_dst = packet[IP].dst
if TCP in packet:
print(f”TCP Packet: {ip_src} -> {ip_dst} (Port: {packet[TCP].sport} -> {packet[TCP].dport})”)
elif UDP in packet:
print(f”UDP Packet: {ip_src} -> {ip_dst} (Port: {packet[UDP].sport} -> {packet[UDP].dport})”)
else:
print(f”IP Packet: {ip_src} -> {ip_dst}”)
Pasul 4: Capturarea Pachetelor
Folosiți funcția “sniff” din scapy pentru a captura pachetele de rețea. Puteți specifica interfața de rețea pe care să se facă capturarea și numărul de pachete pe care doriți să le capturați.
def start_sniffing(interface):
print(f”Sniffing on {interface}…”)
sniff(iface=interface, prn=packet_callback, store=0)
Pasul 5: Rularea Scriptului
Creați un bloc principal care va rula funcția de monitorizare a rețelei. Specificați interfața de rețea pe care doriți să faceți capturarea. Puteți afla interfața dvs. de rețea folosind comanda “ifconfig” pe Linux sau “ipconfig” pe Windows.
if __name__ == “__main__”:
import sys
if len(sys.argv) != 2:
print(“Usage: python network_monitor.py <interface>”)
sys.exit(1)
interface = sys.argv[1]
start_sniffing(interface)
Pasul 6: Testarea Scriptului
Rulați scriptul și specificați interfața de rețea pe care doriți să o monitorizați. De exemplu, pe Linux ar putea fi “eth0” sau “wlan0”, iar pe Windows ar putea fi ceva de genul “Ethernet” sau “Wi-Fi”.
python network_monitor.py eth0
Acest script va începe să captureze și să afișeze informații despre pachetele de rețea care trec prin interfața specificată. Puteți extinde funcționalitatea pentru a include alte tipuri de pachete sau pentru a salva rezultatele într-un fișier de jurnal.
Leave A Comment?