Windows 如何知道它是否可以访问互联网或 Wi-Fi 连接是否需要在浏览器中进行身份验证?

Windows 如何知道它是否可以访问互联网或 Wi-Fi 连接是否需要在浏览器中进行身份验证?

在 Windows 7 中,如果没有互联网访问,通知区域网络图标将显示错误指示wifi 错误,一旦成功连接到互联网,错误图标就会消失网络正常。有时,如果 WiFi 连接需要浏览器内身份验证步骤,例如在酒店或大学的许多访客网络上,则会出现以下弹出气泡,内容如下: 可能需要额外的登录信息,点击打开浏览器

Windows 如何知道互联网连接是否成功?
推测它正在检查一些在线 Microsoft 服务,以查看它是否已成功连接、是否被重定向到其他页面,或者是否根本没有收到任何响应,但我没有看到任何地方记录此过程或所使用的服务。有人能解释一下这是如何工作的吗?我更希望得到有事实依据的答案,而不是仅仅猜测,但如果你有非常好猜一下,然后去做。

这个问题本周超级用户问题.
阅读 2011 年 5 月 16 日博客条目了解更多详情或提交你自己的本周问题。

答案1

经过一番挖掘(Windows 中与网络和 Internet 相关的服务数量惊人),我想我找到了它。Windows Vista 和 Windows 7 具有多种网络感知功能,其中之一是网络连接状态指示器,它执行连接测试,而这些测试又由网络系统托盘图标使用。Internet 连接测试很简单:

  1. NCSI 尝试通过 HTTP 加载特定页面(更准确地说:文本文档)并测试是否可以检索。
  2. 如果不成功,Windows 将报告“无 Internet 访问”。

该机制还会检查文档托管的域是否解析为预期的 IP 地址。因此,如果此测试成功但无法检索文档,它也可能假设互联网访问正常。

当您尚未在热点上进行身份验证时,它会报告“无互联网访问”的原因在于热点的工作方式。它会阻止除 80 和 443(分别用于 HTTP 和 HTTPS)之外的所有端口,这些端口会被重定向到热点的身份验证服务器,并可能以某种方式干扰 DNS 请求。因此,NCSI 既不能解析其测试文件所在的域,即使可以,也无法访问实际文件,因为 HTTP 流量会被重定向到身份验证服务器。

来源:http://technet.microsoft.com/en-us/library/cc766017%28WS.10%29.aspx

答案2

以下是连接状态确定的详细信息过程

以下列表描述了 NCSI 如何与网站通信以确定网络是否具有 Internet 连接:

  1. DNS 名称解析请求dns.msftncsi.com

  2. http://www.msftncsi.com/ncsi.txt返回 200 OK 和文本的HTTP 请求Microsoft NCSI

Apple 在 iOS 上做了非常类似的事情来检测互联网连接和可能的酒店“登录”wifi 页面等。

在 Windows 上,可以通过注册表设置禁用此功能。如果您设置

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
     NlaSvc\Parameters\Internet\EnableActiveProbing

0,Windows 将不再探测互联网连接。

除了处理 regedit 之外,还可以将其存储为.reg文件并双击:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NlaSvc\Parameters\Internet]
     "EnableActiveProbing"=dword:00000000

答案3

正如 Jeff 所说,为了检测互联网连接,Windows 将执行以下操作:

  1. 向服务器发出 DNS 请求
  2. 已知内容的 HTTP 请求

除了 Jeff 的回答之外,我还怀疑:

3 . 如果 HTTP 请求被重定向到 Microsoft 外部(或未返回预期内容),请在屏幕截图中显示该消息。

答案4

对于需要额外登录信息的连接更可能通过 Jeff 提到的 DNS 解析步骤来确定,并发生以下三种情况:

  • 如果系统解析了正确的地址,则连接一切正常。(互联网连接)
  • 如果系统解析了 DNS 请求但地址不正确,则会发生重定向(可能需要添加日志信息)
  • 如果系统无法解析 DNS 请求,则存在互联网连接问题(与网络/接入点建立连接,但没有互联网连接)

我假设请求的是:

http://www.msftncsi.com/ncsi.txt

是测试互联网连接是否畅通的快速方法。之后,运行 DNS 请求以确定连接的完整状态。

相关内容