我的应用需要向网站发出GET请求,我希望能够知道它是否被防火墙阻止,并要求用户添加例外。
如何通过防火墙而不是其他方式找出我的获取请求失败?
答案 0 :(得分:6)
如果它是一个好的防火墙,你不能。除其他选项外,防火墙还可以:
一个合理的选择是解释为什么该应用无法访问该网站,并提供一些有用的建议:
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.
重要的一点是,在失败的类型和它们背后的原因之间进行区分,或许比我更好。例如,“无响应”故障排除步骤与“设备告诉我它没有侦听该端口”的故障排除步骤不同。
答案 1 :(得分:1)
尝试短暂超时访问互联网... 如果命令失败,您可以假设机器具有需要用户交互的防火墙。
如果防火墙状况良好,则无法检测到。
答案 2 :(得分:0)
使用Win32 Firewall apis(经典)