Question

Mon application doit envoyer une requête GET à un site Web. J'aimerais savoir si elle est bloquée par un pare-feu et demander à l'utilisateur d'ajouter une exception.

Comment puis-je savoir que ma demande d'obtention a échoué à cause d'un pare-feu au lieu d'un autre?

Était-ce utile?

La solution

Si c'est un bon pare-feu, vous ne pouvez pas. Parmi les autres options, un pare-feu peut:

  • répondez avec l’un des nombreux messages ICMP , indiquant que la destination n'est pas accessible, ou
  • ignore la demande en silence, ce qui entraîne un délai d'attente.

Une option raisonnable consiste à expliquer pourquoi l'application n'a pas pu accéder au site Web et à fournir des suggestions utiles:

    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.

Le point important est de différencier, peut-être mieux que précédemment, les types d’échec et les raisons qui s’y cachent. Par exemple, les étapes de dépannage "Aucune réponse". sera différent de celui utilisé pour le dépannage ", le périphérique m'a dit qu'il n'écoutait pas sur ce port".

Autres conseils

Essayez d’accéder à Internet avec un bref délai d'attente ... Si la commande échoue, vous pouvez supposer que la machine dispose d'un pare-feu nécessitant une interaction de l'utilisateur.

Si le pare-feu est bon, vous ne pouvez pas le détecter.

Utiliser l'apis du pare-feu Win32 (classique)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top