用于测试网络适配器是否受防火墙保护的 C# API
鉴于 - .Net 2.0 XP 机器,带 SP2 和 多个网络适配器
是否有 API 可用于检查网络适配器是否受防火墙保护?
华盛顿一个人
Given -
.Net 2.0
XP machine with SP2 and
multiple network adapters
Is there an API that can be used to check if the network adapter is firewalled?
OneGuyInDC
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试一下下面的 C# 代码。它适用于 Windows 7(和 Vista)和 XP。
这将获取当前配置文件的状态并启用/禁用 Windows 防火墙,例如:家庭/域/公共访问网络。
用法:
代码:
Give this c# code below a go. It works for Windows 7 (& Vista) and XP.
This will get the status of, and enable/disable the Windows firewall for the current profile, eg: Home/Domain/Public access networks.
Usage:
Code:
由于以下原因,一般情况无法了解(例如,是否存在外部防火墙):
但是有一个 API 用于查明给定网络接口上是否启用了 Windows 防火墙。您将需要使用 COM 互操作来获取 INetFwProfile(对于全局防火墙状态)和 INetSharingConfiguration(对于特定网络接口)接口,并检查 INetFwProfile.FirewallEnabled 和 INetSharingConfiguration.InternetFirewallEnabled。
请参阅 http://msdn.microsoft.com/en -us/library/aa364717%28VS.85%29.aspx 了解链接以及如何使用这些结果来确定有效的防火墙状态。 (它是用 VBScript 编写的,但应该可以翻译为 C#。)
It is not possible to know in general (e.g. if there is an external firewall) for the following reasons:
But there is an API for finding out if the Windows Firewall is enabled on a given network interface. You will need to use COM interop to get the INetFwProfile (for global firewall status) and INetSharingConfiguration (for a specific network interface) interfaces, and check INetFwProfile.FirewallEnabled and INetSharingConfiguration.InternetFirewallEnabled.
See http://msdn.microsoft.com/en-us/library/aa364717%28VS.85%29.aspx for links and for how to use these results to determine the effective firewall status. (It's written in terms of VBScript but should be translatable to C#.)