2014-01-09 91 views
1

有谁知道是否有任何方便的Windows API函数可用于确定活动的网络类型。通过网络类型我的意思是:检测Windows网络类型

  • 首页
  • 工作
  • 公共

我希望能够通知我软件的用户,如果他们是在公用网络上,因为它可能会导致我的软件出现连接问题。

回答

2

要确定是否是在公用网络上,可以检查使用NLM_NETWORK_CATEGORY_PUBLIC值(NLM_NETWORK_CATEGORY enumeration)的INetwork interface(其用于确定网络的属性)和INetwork::GetCategory方法。

有关此主题的更多信息,请尝试Windows 7 Network Location文档。

+0

尽管这确实回答了我的问题,但您提供的链接让我找到了更好的解决方案。除了检查网络位置外,还有一个Windows防火墙API函数可用于测试端口是否被允许:http://msdn.microsoft.com/en-us/library/windows/desktop/aa365290(v = vs.85)的.aspx – pqvst