Erkennen, wenn windows-firewall blockiert mein Programm
Ich habe eine Anwendung, die die Kommunikation mit einem NetApp-Gerät durch Ihre api. Mit der windows-firewall auf, die api-Befehle fehlschlagen. Mit der firewall aus, die api-Befehle funktionieren. Ich don ' T erhalten Sie jede Meldung wie "Windows-Firewall blockiert dieses Programm".
Blick durch die Unterlagen, die ich glaube, ich fand die TCP-ports, die offen sein müssen für die api-Befehle zu arbeiten. Wie kann ich programmatisch feststellen, ob die ports gesperrt sind, so kann ich eine Meldung angezeigt, um den Benutzer auf das potenzielle problem?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die firewall manager setzt Sie sich über COM und implementiert eine
IsPortAllowed
, hier ist ein interop-Beispiel der Interaktion mit dem manager.Können Sie es tun, wie ich denke: probieren Sie es aus:
Ändern 1433 für den port ein, den Sie überprüfen möchten.
Auch, um zu sehen, welche ports auf Ihrem Rechner ausführen:
C:>netstat -an |find /i "Abhören"
TCP 0.0.0.0:25 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:80 0.0.0.0:0 ABHÖREN
TCP 0.0.0.0:135 0.0.0.0:0 ABHÖREN
Erkennen, wenn die ports geblockt sind - auf Win7 Sie können das Fenster Firewall-Protokolle, die durch öffnen der Windows-Firewall auf Erweiterte Einstellungen auf der linken Seite, und öffnen Sie dann die Überwachung Zweig.
Hinweis auf die Überwachung Registerkarte in den Logging-Einstellungen gibt es eine option, um die log-Datei, die auf meinem Win7 PC ist
%systemroot%\system32\LogFiles\Firewall\pfirewall.log
- Sie könnten genau diese Datei analysieren. Ich habe recherchiert in der Vergangenheit und gibt es utilities gibt, um dies für Sie tun, aber am Ende des Tages ist es nur ein standard-format-log-Datei.Bezweifle ich, dass die firewall wird erwähnt, dass es die Blockierung der Anwendung, sonst Eindringling kann eine information auf, was verhindert ihn, um Zugriff auf das system :-).
In der Regel, firewalls, Protokolle versucht, eine Verbindung vom und zum computer, erfolgreich oder nicht, können Sie es prüfen.
Update*
können Sie versuchen, Bestätigung im Netz. Wenn Sie keine bekommen für eine gewisse Zeit, dann können Sie sicher sagen, dass es ein problem in der Verbindung.