Frage

Meine App benötigen eine GET-Anfrage auf eine Website zu machen, und ich möchte in der Lage sein zu wissen, ob es durch eine Firewall blockiert ist werden, und bitten Sie den Benutzer eine Ausnahme hinzuzufügen.

Wie finde ich heraus, dass meine Erhaltungs-Anforderung wegen einer Firewall versagt, statt etwas anderes?

War es hilfreich?

Lösung

Wenn es eine gute Firewall ist, können Sie nicht. Unter anderen Optionen, eine Firewall kann:

  • antwortet mit einem von mehreren verschiedenen ICMP Nachrichten, das Ziel angibt, nicht zugänglich ist, oder
  • leise die Anforderung verwerfen, in einem Timeout führt.

Eine vernünftige Option ist zu erklären, warum die App nicht in der Lage war, die Website zugreifen, und geben Sie einige hilfreiche Vorschläge:

    No response from www.site.com:
    * Your computer may not be connected to the Internet.
    * The site may be down.
    * The site may be blocked by a firewall.
    The network indicated that www.site.com is not accessible:
    * Helpful messages go here.

Der wichtige Punkt ist zu unterscheiden, vielleicht besser, als ich oben war, zwischen dem Typen des Scheiterns, und die Gründe hinter ihnen. Zum Beispiel werden die Schritte zur Fehlerbehebung „keine Antwort“ unterscheiden sich von denen für die Fehlerbehebung „das Gerät hat mir gesagt, dass es nicht auf diesem Port zu hören.“

Andere Tipps

Versuchen Sie, das Internet mit einem kurzen Timeout für den Zugriff auf ... Wenn der Befehl fehlschlägt, können Sie annehmen, dass das Gerät eine Firewall, die Interaktion mit dem Benutzer erfordert.

Wenn der Firewall gut ist, kann man es nicht erkennen.

Verwenden Sie Win32 Firewall apis (classic)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top