如何确定“网络位置”在.NET 中?
在Windows 7(我认为是Vista)中,您连接的网络被分配到一个“位置”,例如家庭/工作或公共。
是否可以通过编程方式确定当前的网络位置?
In Windows 7 (and Vista I think), a network you're connected to is assigned to a "location" e.g. Home / Work or Public.
Is it possible to determine the current network location programatically?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 Windows API 代码包,您可以获得 Windows 显示的相同网络列表,通过使用
NetworkListManager.GetNetworks(NetworkConnectivityLevels.All)
。然后,每个网络上都有一个名为
Category
的属性,用于说明该网络是公共的还是私有的(家庭/工作)。但似乎没有办法区分“家”和“工作”。Using Windows API Code Pack, you are able to get the same list of networks that Windows shows, by using
NetworkListManager.GetNetworks(NetworkConnectivityLevels.All)
.Then, there's a property named
Category
on each network which tells whether it is public or private (home / work). There seems to be no way to distinguish from 'home' and 'work' though.