Pergunta

As minhas necessidades de aplicativos para fazer um pedido GET para um site e eu gostaria de ser capaz de saber se ele está sendo bloqueado por um firewall, e perguntar ao usuário adicionar uma exceção.

Como posso saber que o meu pedido get falhou devido a um firewall, em vez de outra coisa?

Foi útil?

Solução

Se é um bom firewall, você não pode. Entre outras opções, um firewall pode:

  • responder com uma das várias mensagens diferentes ICMP , indicando o destino não está acessível, ou
  • silenciosamente descartar a solicitação, resultando em um tempo limite.

A opção razoável é explicar por que o aplicativo não consegui acessar o site e fornecer algumas sugestões úteis:

    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.

O ponto importante é diferenciar, talvez melhor do que eu fiz acima, entre o tipos de falha, e razões atrás deles. Por exemplo, os passos para a resolução de problemas "nenhuma resposta" serão diferentes daquelas para solucionar "o dispositivo me disse que não está escutando nessa porta."

Outras dicas

Tente acessar a internet com um curto tempo de espera ... Se o comando falhar, você pode supor que a máquina tem um firewall que requer interação do usuário.

Se o firewall é bom, você não pode detectá-lo.

Use Win32 Firewall APIs (clássico)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top