2

我有一个 Windows 7/8 程序,可以在后台管理我的 wifi 连接。我使用 C#、ManagedWifi 和 NETWORKLIST 来执行此操作,尽管语言并不重要。

该程序运行良好,但当我连接到“可能需要其他登录信息。单击此处打开浏览器”的网络时除外。气球出现。

我想检测/拦截这个并在我的程序上下文中自动打开浏览器。

忽略浏览器部分,是否有事件、网络属性或其他任何我可以用来确定是这种情况并因此做出响应的东西。

许多“开放”热点这样做是为了显示使用条款和条件,具有“访客”设施的 Cisco/Linksys 路由器也这样做。

非常感谢任何帮助。

问候,吉姆

4

1 回答 1

1

看看这个页面

问:Windows 如何知道“可能需要其他登录信息”?当我连接到热点时,有时 Windows 会弹出此消息。当我打开浏览器时,热点要求我同意条款或提供用户名才能访问网络,就像在酒店或机场一样。Windows 是如何知道这一点的?它知道每家酒店使用的热点吗?- 匿名的

A:当 Windows 似乎在您之前就知道热点需要登录时,这看起来确实令人毛骨悚然,不是吗?值得庆幸的是,答案在于网络智能,而不是任何超自然的东西。

每当 Windows Vista 或 Windows 7 计算机连接到网络时,它都会执行一些快速诊断。一种这样的诊断是它尝试向地址 www.msftncsi.com 发送 Web 请求,并分析结果。

如果连接完全正常,该地址会返回一个 Windows 识别的简单文本文件。需要登录或服务条款确认的热点捕获您的 Web 请求并将它们重定向到热点页面,直到您获得授权。因此,当 Windows 尝试检索此文件时,由于热点重定向而失败。

聪明的是,Windows 然后在自己的网站上执行 DNS 查找。热点将解析地址,即使它不允许您访问该站点。在这种情况下,Windows 会断定您处于这样的热点并弹出“可能需要其他登录信息”消息。如果 DNS 查找本身失败,Windows 会断定连接到 Internet 确实存在问题,而是显示消息“无法访问 Internet”。</p>

您可能想尝试做同样的事情 - 建立 wifi 连接后,尝试连接到 www.msftncsi.com,如果失败,请尝试 DNS 查找。

于 2014-11-24T12:19:35.390 回答