Entwickler-Ecke

Netzwerk - PacketDotNet und SharpPcap Verwenden? Packete Sniffen....


KokaLola - Sa 18.12.10 01:58
Titel: PacketDotNet und SharpPcap Verwenden? Packete Sniffen....
Moin - ich habe eine kleine Frage... für den einen oder anderen vllt. schnell zu beantworten?

Ich beschäftige mich gerade mit Protokollen und wollte mir mal die Pakete anschauen, nur weiß ich nicht wie
ich mit "PacketDotNet und SharpPcap" arbeiten muss...

Soll ein einfaches Programm sein, welches die Pakete in einer listbos ausgibt.

Vllt. kennt sich damit ja wer aus und hat vllt. ein bsp. Programm?

PS: Benutze Visual Studio 2008 und 2010

Mit freundlichen Grüßen


Trashkid2000 - Mo 20.12.10 13:31

Hallo,
dafür gibt es auch eine ganz gute Dokumentation:
http://www.tamirgal.com/blog/Page/SharpPcap-tutorial-a-step-by-step-guide-to-using-SharpPcap.aspx
Leider weicht der Beispielcode darin etwas von der aktuellen Version ab, aber mit ein bisschen überlegen kriegt man das auch ganz schnell raus. Zwei kurze Beispiele dazu:
Alle Netzwerkadapter auflisten:

C#-Quelltext
1:
2:
foreach (PcapDevice device in LivePcapDeviceList.Instance)
  Console.WriteLine(device.Description);
Pakete über einen Netzwerkadapter mitschneiden:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
private void StartDeviceCapture(PcapDevice capturedDevice)
{
  capturedDevice.OnPacketArrival += new PacketArrivalEventHandler(capturedDevice_OnPacketArrival);
  capturedDevice.Open();
  capturedDevice.StartCapture();// device.PcapStartCapture();
}

private void StopDeviceCapture(PcapDevice capturedDevice)
{
  capturedDevice.StopCapture();
  capturedDevice.Close();
}

private void capturedDevice_OnPacketArrival(object sender, CaptureEventArgs e)
{
  Packet packet = Packet.ParsePacket(e.Packet);
  if (packet is TcpPacket)
  { 
    //lese Informationen aus              
  }
}
Ansonsten sind in der Source von SharpPcap noch viele andere Beispiele
http://sourceforge.net/projects/sharppcap/files/SharpPcap/3.4.0/SharpPcap-3.4.0.src.zip/download
LG, Marko