如何在Windows上检索活动网络位置?

时间:2014-05-22 06:21:33

标签: windows winapi networking

我想在Windows机器上获取活动网络位置(即家庭(私人)/工作/公共)。

是否有任何API可以获取此信息?

1 个答案:

答案 0 :(得分:1)

当然,有一个API。您正在寻找的是COM接口INetwork。它有一个名为GetCategory的方法,它返回NLM_NETWORK_CATEGORY enumeration

中的值
NLM_NETWORK_CATEGORY_PUBLIC               = 0x00  // a public network
NLM_NETWORK_CATEGORY_PRIVATE              = 0x01  // a private network
NLM_NETWORK_CATEGORY_DOMAIN_AUTHENTICATED = 0x02  // an Active Directory domain

当然,此API仅存在于Windows Vista及更高版本中,其中首次引入了网络位置功能。<​​/ p>

并且值得指出的是,在我看来,它返回的信息的有用性相当有限。您不能基于其类型对特定网络的设置做出任何类型的假设,因为用户可以修改这些设置。要获得准确的值,您需要查询您需要知道的实际设置(例如特定防火墙端口的状态)。