import pyshark import signal import os from datetime import datetime # Paketleri kaydetmek için bir liste captured_packets = [] MAX_PACKETS = 100 # Paket sınırı def signal_handler(sig, frame): print("\nYakalama işlemi durduruldu. Paketler kaydediliyor...") save_packets_to_file() def save_packets_to_file(): try: # Normal kullanıcı masaüstüne kaydetme işlemi desktop_path = os.path.join(os.path.expanduser('~'), 'Desktop') # Masaüstü dizinini belirleme 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.") global captured_packets # Canlı paket yakalama capture = pyshark.LiveCapture(interface=interface) # Yakalanan paketlerin işlenmesi for packet in capture.sniff_continuously(): # Sadece 100 paket yakalayınca işlemi durdur if len(captured_packets) >= MAX_PACKETS: print(f"{MAX_PACKETS} paket yakalandı, işlem sonlandırılıyor...") save_packets_to_file() 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')