过去,开发人员必须获取有关逻辑网络接口的信息,并因此根据大量不同的网络信息做出有关网络连接的决策。在这种情况下,开发人员必须根据 IP 地址、接口的子网、与接口关联的域名系统 (DNS) 名称、NIC 的 MAC 地址、无线网络名称或其他网络信息。NLA 通过提供用于枚举逻辑网络连接信息的标准接口,将其与物理网络接口信息相关联,然后在先前返回的信息无效时提供通知来缓解此问题。
NLA 提供以下网络位置信息:
逻辑网络身份
NLA 首先尝试通过其 DNS 域名来识别逻辑网络。如果逻辑网络没有域名,NLA 会根据存储在注册表中的自定义静态信息,最后从其子网地址来识别网络。
逻辑网络接口
对于计算机连接到的每个网络,NLA 提供一个 AdapterName,它唯一地标识一个物理接口(例如 NIC)或一个逻辑接口(例如 RAS 连接)。AdapterName 然后可以与 IP Helper API 中可用的函数一起使用,以获得进一步的接口特征。
来源:http: //msdn.microsoft.com/en-us/library/ms740558%28VS.85%29.aspx
请参阅http://msdn.microsoft.com/en-us/library/aa480195.aspx
JR
根据最近在非域、静态配置的网络上进行的实验(使用 Server 2012,但我怀疑早期版本类似),NLA 服务使用默认网关的链路层 (MAC) 地址来识别网络。
细节尚不清楚,但我想可以用网络分析仪来解决。如果配置的默认网关没有响应,则 NLA 无法识别网络,因此它肯定是在进行某种查询。(也就是说,您不能只输入一个虚拟网关地址,甚至是一个虚拟网关地址加上静态 arp 条目;与特定网络关联的网关 MAC 地址必须实际响应,以便 NLA 确定适配器已连接到那个网络。)
另请参阅我的博客文章,了解如何欺骗 Windows 2012 将适配器分配给唯一网络。
如果适配器由 DHCP 分配地址,则逻辑可能不同。我还没有调查过。根据现有答案记录域网络上的逻辑。