Windows具有networking位置感知(NLA)的概念,这意味着您可以将networkingconfiguration为“公共”(即家庭/工作),“私人”等。
它使用什么信息来为此目的“指纹”networking?
资料来源: http : //msdn.microsoft.com/en-us/library/ms740558%28VS.85%29.aspx
networking位置感知(NLA)服务提供商对于可能在不同networking之间移动的计算机或设备至关重要,并且在有多个可用networking时可select最佳configuration。 例如,在物理networking之间漫游的无线计算机可以使用NLA来基于关于其可用networking连接的信息来确定正确的configuration。 当多宿主计算机与一个networkingbuild立物理连接,同时通过拨号连接或隧道连接到另一个networking时,NLA也非常有价值。
过去,开发人员必须获得有关逻辑networking接口的信息,因此需要根据大量不同的networking信息来决定networking连接。 在这种情况下,开发人员必须根据IP地址,接口的子网,与接口关联的域名系统(DNS)名称,NIC的MAC地址,无线networking名称或其他networking信息。 NLA通过提供用于枚举逻辑networking附件信息的标准接口,将其与物理networking接口信息关联,然后在先前返回的信息被无效时提供通知,来缓解这个问题。
NLA提供以下networking位置信息:
逻辑networking身份
NLA首先尝试通过其DNS域名来识别逻辑networking。 如果一个逻辑networking没有域名,NLA从存储在registry中的自定义静态信息,最后从其子网地址标识networking。
逻辑networking接口
对于计算机所连接的每个networking,NLA提供一个唯一标识物理接口(如NIC)的适配器名称,或者一个逻辑接口(如RAS连接)。 然后,AdapterName可以与IP Helper API中可用的函数一起使用,以获得更多的接口特性。
NLA将逻辑networking实现为服务类,并具有关联的类GUID和属性。 NLA返回信息的每个逻辑networking都是该服务类的一个实例。
基于最近的实验(对于Server 2012,但我怀疑早期版本类似)在非域,静态configuration的networking上,NLA服务使用默认网关的链路层(MAC)地址来识别networking。
细节还不清楚,但我想他们可以用networking分析仪来解决。 如果configuration的默认网关没有响应,NLA不能识别networking,所以肯定会做某种查询。 (也就是说,您不能只放入一个虚拟网关地址,甚至是一个虚拟网关地址加静态ARP表项;与特定networking关联的网关MAC地址必须实际响应,以便NLA决定连接适配器到那个networking。)
另请参阅我的博客条目 ,以欺骗Windows 2012分配适配器到唯一的networking。
如果通过DHCP为适配器分配地址,则逻辑可能不同。 我还没有看过。 按照现有的答案logging域networking上的逻辑。