我的应用需要向网站发出 GET 请求,我想知道它是否被防火墙阻止,并要求用户添加例外。
我怎样才能发现我的获取请求由于防火墙而不是其他原因而失败?
我的应用需要向网站发出 GET 请求,我想知道它是否被防火墙阻止,并要求用户添加例外。
我怎样才能发现我的获取请求由于防火墙而不是其他原因而失败?
如果它是一个好的防火墙,你就不能。在其他选项中,防火墙可以:
一个合理的选择是解释为什么应用程序无法访问该网站,并提供一些有用的建议:
www.site.com 没有回应: * 您的计算机可能未连接到 Internet。 * 该网站可能已关闭。 * 该网站可能被防火墙阻止。
该网络表示无法访问 www.site.com: * 有用的信息在这里。
重要的一点是区分失败的类型及其背后的原因,也许比我上面所做的更好。例如,“无响应”故障排除步骤与“设备告诉我它没有在该端口上侦听”故障排除步骤不同。
尝试以短暂的超时时间访问互联网...如果命令失败,您可以假设机器有防火墙,需要用户交互。
如果防火墙是好的,你就无法检测到它。
使用 Win32 防火墙 api(经典)