Üst Kütüphaneler
using System;using System.Collections.Generic;using System.Linq;using System.Text;using SharpPcap;using SharpPcap.LibPcap;using System.Threading.Tasks;Device_OnPacketArrival diye bir başlığımız var. Tam kodu şu şekilde;
C#:
private static void Device_OnPacketArrival(object sender, PacketCapture e)
{
// Yakalanan paketi al
var rawPacket = e.GetPacket();
var packet = PacketDotNet.Packet.ParsePacket(rawPacket.LinkLayerType, rawPacket.Data);
// Zaman damgası ve paket uzunluğunu yazdır
Console.WriteLine($"{rawPacket.Timeval.Date} - Paket uzunluğu: {rawPacket.Data.Length} bayt");
// IP paketini analiz et (örnek)
var ipPacket = packet.Extract<PacketDotNet.IPPacket>();
if (ipPacket != null)
{
Console.WriteLine($"Kaynak IP: {ipPacket.SourceAddress} -> Hedef IP: {ipPacket.DestinationAddress}");
}
}
Şimdi yukarıdaki başlığı işlemeye geldi sıra... Burada ise ağ arayüzlerini listeleyip arayüzler içerisinde ki trafikleri görmenizi sağlıyor.
C#:
// Mevcut ağ arayüzlerini listele
var devices = CaptureDeviceList.Instance;
if (devices.Count == 0)
{
Console.WriteLine("Hiçbir ağ arayüzü bulunamadı! Npcap/WinPcap kurulu olduğundan emin ol.");
return;
}
// Arayüzleri yazdır
for (int i = 0; i < devices.Count; i++)
{
Console.WriteLine($"{i + 1}: {devices[i].Name}");
Console.WriteLine($"\tAçıklama: {devices[i].Description}");
}
// Kullanıcıdan arayüz seçmesini iste
Console.Write("\nİzlemek istediğin arayüz numarasını gir (1-{0}): ", devices.Count);
int deviceIndex = int.Parse(Console.ReadLine()) - 1;
// Seçilen cihazı al
ICaptureDevice device = devices[deviceIndex];
// Paket yakalama olayını tanımla
device.OnPacketArrival += new PacketArrivalEventHandler(Device_OnPacketArrival);
// Cihazı aç (promiscuous modda, 1000 ms timeout)
device.Open(DeviceModes.Promiscuous, 1000);
Console.WriteLine("Ağ trafiği izleniyor... Çıkmak için Ctrl+C kullan.");
// Yakalamayı başlat
device.StartCapture();
// Programın kapanmasını engelle
Console.ReadLine();
// Yakalamayı durdur ve cihazı kapat
device.StopCapture();
device.Close();
[ SONUÇ ]


