Http 如何在Windows中检测防火墙?

Http 如何在Windows中检测防火墙?,http,winapi,firewall,http-get,windows-firewall,Http,Winapi,Firewall,Http Get,Windows Firewall,我的应用程序需要向网站发出GET请求,我希望能够知道它是否被防火墙阻止,并要求用户添加一个例外 我怎样才能发现我的get请求失败是因为防火墙而不是其他原因呢?如果它是一个好的防火墙,你就不能。在其他选项中,防火墙可以: 使用多条不同消息中的一条进行回复,表明目的地不可访问,或 静默放弃请求,导致超时 合理的选择是解释应用程序无法访问网站的原因,并提供一些有用的建议: No response from www.site.com: * Your computer may not be c

我的应用程序需要向网站发出GET请求,我希望能够知道它是否被防火墙阻止,并要求用户添加一个例外


我怎样才能发现我的get请求失败是因为防火墙而不是其他原因呢?

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

  • 使用多条不同消息中的一条进行回复,表明目的地不可访问,或
  • 静默放弃请求,导致超时
合理的选择是解释应用程序无法访问网站的原因,并提供一些有用的建议:

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. www.site.com没有回复: *您的计算机可能未连接到Internet。 *该站点可能已关闭。 *该站点可能被防火墙阻止。 网络表明无法访问www.site.com: *这里有有用的信息。
重要的一点是区分失败的类型及其背后的原因,也许比我上面所做的更好。例如,排除“无响应”故障的步骤与排除“设备告诉我它没有在该端口上侦听”故障的步骤不同。

尝试在短时间内访问internet。。。 如果命令失败,您可以假设机器有一个需要用户交互的防火墙

如果防火墙是好的,你就检测不到它

使用Win32 Firewall API(经典)

访问Internet上的什么?通常,防火墙不在用户的机器上;它要么在公司边界上,要么在目标端——防火墙(通常)阻止你进入,而不是离开特定的机器。 The network indicated that www.site.com is not accessible: * Helpful messages go here.