2

我的应用需要向网站发出 GET 请求,我想知道它是否被防火墙阻止,并要求用户添加例外。

我怎样才能发现我的获取请求由于防火墙而不是其他原因而失败?

4

3 回答 3

6

如果它是一个好的防火墙,你就不能。在其他选项中,防火墙可以:

  • 回复几个不同的ICMP消息之一,指示目的地不可访问,或
  • 默默地丢弃请求,导致超时。

一个合理的选择是解释为什么应用程序无法访问该网站,并提供一些有用的建议:

    www.site.com 没有回应:
    * 您的计算机可能未连接到 Internet。
    * 该网站可能已关闭。
    * 该网站可能被防火墙阻止。
    该网络表示无法访问 www.site.com:
    * 有用的信息在这里。

重要的一点是区分失败的类型及其背后的原因,也许比我上面所做的更好。例如,“无响应”故障排除步骤与“设备告诉我它没有在该端口上侦听”故障排除步骤不同。

于 2009-03-13T14:29:30.340 回答
1

尝试以短暂的超时时间访问互联网...如果命令失败,您可以假设机器有防火墙,需要用户交互。

如果防火墙是好的,你就无法检测到它。

于 2009-03-13T14:39:49.427 回答
0

使用 Win32 防火墙 api(经典)

于 2009-03-13T14:48:48.877 回答