2014-05-22 50 views

回答

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和更高版本,其中首次推出的網絡定位功能。

而且值得指出的是,它所返回信息的有用性在我看來是相當有限的。由於用戶可以修改這些設置,因此您不能根據其類型對特定網絡的設置進行任何假設。要獲得準確的值,您需要查詢您需要知道的實際設置(例如,特定防火牆端口的狀態)。

+1

非常感謝您的回覆。我們可以將公共/私人分類。我甚至嘗試過INetFwPolicy2接口的get_CurrentProfileTypes API。我想獲取網絡位置是否爲家庭/工作/公共。根據我的觀察家庭和工作被認爲是私人類型。我們可以回家或單獨工作,而不是在私人網絡下工作。 – Mrunal

相關問題