• Windows 怎么知道我已经连接到互联网而不是局域网? 原来当中大有文章!


    Windows 怎么知道我已经连接到互联网而不是局域网? 原来当中大有文章!

    转载

    原文章地址:点击

    2014-01-09

    Windows 怎么知道我已经连接到互联网而不是局域网? 原来当中大有文章!

    Windows怎么知道我已联机到网际网络?原来当中大有文章!

    标题这个问题好像很简单,但原来深入研究起来还真的不是”因为我能看到网页嘛”这样简单的答案.

    研究这个课题是由于公司内部的防火墙自动把一些联机封琐起来,

    检视之下发现好些联机尝试连接到以下一条连接:

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

    看到MSFT,很直觉觉得事情跟微软有关系,但是NCSI又是甚么呢?

    如果你到www.msftncsi.com 想看看关于它的数据,你会得到这样一个画面

    而直接看ncsi.txt的内容,就比较明显了

    真的是微软造的!到Google追查之下才发现这个小文件的用途

    NCSI,全名是Network Connectivity Status Indicator,是微软用来测试设备有没有连上网际网络和报告状况用的

    这是由Vista年代开始引入的, 而且也提供有KB

    大家如果有外游的话,很多时候在酒店虽然插上网线得到IP了

    但还是需要输入酒店提供的密码才能上网,这时Windows又会懂得提示你,原来也是靠NCSI才做到的!

    旧版本的Windows没有这个功能,可能你就在烦恼为什么Skype打不通了!

    ​NCSI执行时的整个过程是这样的,我还会以Wireshark辅助以提供更可靠的情报:

    电脑原先处于无网络状态

    1.电脑启动,或网线接上了,假设Windows经过DHCP得到IP Address

    2.Windows尝试向DNS查询一条A纪录 www.msftncsi.com

    3.成功的话再查询dns.msftncsi.com

    固定是得到131.107.255.255这个结果的,如果Windows发现得不到这个结果,或者结果不相同

    就会觉得电脑没有正确得到网络连接,或会显示不能接入网络的信息.

    4.假如以上步骤成功的话,会向http://www.msftncsi.com/ncsi.txt 发出GET指令

    如果成功得HTTP 200 OK的响应,显示电脑正确连接到网际网络,所以Windows显示有网际网络联机

    如果反解释dns.msftncsi.com成功但HTTP GET这个步骤并没有得到200 OK的结果

    显然是有某些原因封所了这个HTTP联机,很多时候就是需要多键入一个使用者密码

    所以Windows会弹出一个信息提示你可能需要提供更多资料才能进入网际网络!

    但如果这不是问题所在,Windows就可能会告诉你连接进了受限制的网络了.

    了解了这些,我还是建议可以看看KB的描述

    http://technet.microsoft.com/en-us/library/cc766017(WS.10).aspx

    问题来了,如果公司有些电脑根本就不会接触网际网络,或防火墙并没有开放80端口我们应该怎么办?

    另外,在KB中微软在分页中声明了,当我们发出DNS查询及HTTP GET时,

    微软会把我们的IP和查询时间记录到IIS Log上,这也引起了安全方面的问题.

    基于以上问题,微软建议我们在某些情况下自设一台WEB服务器,

    再来把流向www.msftncsi.com的东西以修改机码的方式指向它,ncsi.txt文档建议拿微软的

    因为有很多网上回报说它是一个特别的文档(没有EOL结尾),如果自制的话很可能会失败.

    而机码的位置在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNlaSvcParametersInternet

    如果你想把这个功能停用,可以直接把EnableActiveProbing从1改成0

    注意任何改变机码的动作都可能对系统做成不能弥补的损害,请备份后才修改!

    参考链接:

    http://technet.microsoft.com/en-us/library/cc766017(WS.10).aspx

    http://blog.superuser.com/2011/05/16/windows-7-network-awareness/ Windows 7 Network Awareness: How Windows knows it has an internet connection

    http://www.techrepublic.com/blog/data-center/what-do-microsoft-and-ncsi-have-in-common/ What do Microsoft and NCSI have in common?

  • 相关阅读:
    Select2插件的隐藏、设置宽度
    远程登陆Linux服务器
    ECMAScript typeof用法
    Select2异步搜索数据
    ECMAScript 引用类型
    LeetCode 任务调度器-Python3<八>
    sort、sorted高级排序-Python3.7 And 算法<七>
    LeetCode算法笔记目录
    数据结构-Python3.7<三>
    【夯实PHP基础】php开发时遇到白页的调试方法
  • 原文地址:https://www.cnblogs.com/liume/p/12501809.html
Copyright © 2020-2023  润新知