import pyshark import signal import os from datetime import datetime # Paketleri kaydetmek için bir liste captured_packets = [] # Yakalamayı durdurmak için işaretleyici is_capturing = True def signal_handler(sig, frame): global is_capturing is_capturing = False print("\nYakalama işlemi durduruldu. Paketler kaydediliyor...") try: # Masaüstüne kaydetme işlemi desktop_path = os.path.join(os.path.expanduser('~'), 'Desktop') # Linux ve macOS için file_name = f"captured_packets_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt" file_path = os.path.join(desktop_path, file_name) print(f"Kaydedilecek dosya yolu: {file_path}") # Dosya yazma işlemi with open(file_path, 'w') as f: for packet in captured_packets: f.write(f"{packet}\n") print(f"Paketler başarıyla kaydedildi: {file_path}") except Exception as e: print(f"Hata: Paketler kaydedilirken bir sorun oluştu: {e}") exit(0) # Yakalamayı durdurmak için Ctrl+C işaretçisi signal.signal(signal.SIGINT, signal_handler) def capture_packets(interface='eth0'): print(f"{interface} arayüzünde ağ paketi yakalanıyor. Yakalamayı durdurmak için Ctrl+C'ye basın.") # Canlı paket yakalama capture = pyshark.LiveCapture(interface=interface) # Yakalanan paketlerin işlenmesi for packet in capture.sniff_continuously(): if not is_capturing: break # TCP ve HTTP paketlerini filtrele if 'TCP' in packet or 'HTTP' in packet: print("Paket yakalandı!") print(f"Paket Detayı: {packet}") captured_packets.append(str(packet)) if __name__ == "__main__": # 'eth0' arayüzünde paketleri yakalama capture_packets(interface='eth0')