2011-01-14 13 views
0

Ich habe eine SysTray-Anwendung, die wissen muss, wenn ein Browser auf einen Internet TImeout/Verbindung nicht gefunden/etc ... Fehler auftritt. Auf der Port-Ebene kann dies alles sein, von Netzwerk ist unbrauchbar zu Netzwerk nicht gefunden, etc ...TCP-Ereignismonitor in .NET

Ich brauche nicht jedes TCP-Paket über das Netzwerk fließen zu sehen, aber ich muss über TCP/Port/wissen WinSock (was auch immer funktioniert) Ereignisse, die über alle Ports fließen.

Im Idealfall würde ich WinPCAP vermeiden, da es sich um ein verteilbares Softwareprodukt handelt und Leute WinPCAP auf ihren Computern nicht mögen.

Ich benutze .NET 4.0 Full - kann mir bitte jemand in die richtige Richtung zeigen?

+0

Was passiert, wenn ein anderes Programm als ein Browser die gleichen Probleme sieht? Willst du es dann wissen? –

Antwort

0

Wenn Sie nicht die tatsächlichen TCP-Pakete sehen möchten, sondern nur an den offenen Verbindungen interessiert sind, warum nicht NETSTAT -a verwenden?

Es wird Ihnen die Protokoll-, lokalen, Fremd- und Statusinformationen der aktuellen Verbindungen auf Ihrem Computer zur Verfügung stellen.

Verwenden Sie die Klasse Process, um NETSTAT -a zu spawnen. Leiten Sie die Ausgabe mit Process.StandardOutput an Ihre Anwendung um und filtern Sie dann die erforderlichen Strings mit regex oder string.split aus.

0

Vielen Dank für Ihre Antwort - es führte mich zu IPGlobalPrperties - http://www.eggheadcafe.com/sample-code/csharp.NET/c51bd463-c6c3-48fb-a972-5b440215992a/provides-information-about-the-transmission-control-protocol-tcp-connections-on-the-local-computer.aspx

ein Derivat dieses Codes verwenden, konnte ich einen Monitor für TCP Ereignisse einzurichten.

+0

Dieser Link ist tot. Könnten Sie bitte einen Teil Ihres Codes aktualisieren und/oder teilen? Ich muss den TCP-Verkehr von der alten PBX-Anlage meines Co (über eine bekannte IP-Adresse und Portnummer) auf seine ältere Client-Software (Oaisys NetPhone v4.6) überwachen, die beide nicht mehr unterstützt werden (es sei denn, wir aktualisieren das, was wir nicht tun werden) bald) um Anrufer-ID-Telefonnummern zu extrahieren, um den Client zu sfw nicht mehr Caller ID # unter Windows 10 (vs. 7 oder XP) protokolliert. – Tom