【问题标题】:How does my computer know that it is connected to the Internet?我的计算机如何知道它已连接到 Internet?
【发布时间】:2016-01-27 22:25:29
【问题描述】:

很抱歉问了这么平凡的问题,但我突然很好奇。如果我在我的 Windows 机器上打开网络连接对话框,它会显示我的计算机连接到路由器然后连接到地球(标记为 Internet)的可爱小图片。 Windows 试图连接到什么以使其确定计算机具有 Internet 连接?我假设“互联网”没有 IP4 地址,那么它要去哪里?它只是向 Microsoft 家庭办公室的地址发送 ping 指令吗?如果那个地址消失了,我的窗口机器会突然决定它不再有通往互联网的路由吗?与该地址“接近”的 Windows 框是否会错误地报告他们可以访问 Internet,而实际上他们无法访问。

我会在这变得太愚蠢之前停下来。但说真的,Windows 机器使用什么标准来确定它是否具有 Internet 连接性?我假设 Linux 和 iOS 系统具有相同的功能。他们使用相同的标准吗?

【问题讨论】:

    标签: windows networking


    【解决方案1】:

    用于“互联网”的一般 IP 地址是 8.8.8.8 - 或 Google.com。

    如果您可以 ping 它并从中获取网页,那么您很有可能至少 一些 可以访问互联网。

    但对于特定的 Windows - Network Connectivity Status Indicator - 它使用不同的域:dns.msftncsi.com

    它将(除非被 GPO 禁用):

    • 解析名称,并验证它具有“正确的”IP (131.107.255.255 fd3e:4f5a:5b81::1)
    • 对该地址执行 HTTP 获取并检查是否得到结果。 NCSI

    大概如果检索到不同的响应,那么它可以判断它是否有 wi-fi 登录或类似的。

    【讨论】:

      【解决方案2】:

      你的直觉似乎是正确的。我不在 Windows 机器上,但您可以通过触发 netstat 然后连接来发现。

      【讨论】:

        【解决方案3】:

        如果我正在编程,我会发出 Ping、TCP 和 HTTP 请求。一些设备通过代理连接,例如防火墙、强制门户等。唯一可以确定的方法是发送一些内容并收到回复。

        例如,我的 Android 设备可以检测到强制门户。它可能通过尝试在某处进行 HTTP 连接来做到这一点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-11-22
          • 1970-01-01
          • 2016-07-23
          • 1970-01-01
          • 2012-03-25
          • 1970-01-01
          • 2013-06-22
          • 2020-08-12
          相关资源
          最近更新 更多