Vic*_*ann 3 c# windows windows-firewall
我正在尝试以编程方式读取允许应用程序通过防火墙的配置文件。我一直在使用以下 c# 代码:
string inputname = "TestFirewallUpdateSettings";
private void button1_Click(object sender, EventArgs e)
{
INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(
Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
INetFwRule firewallRule = firewallPolicy.Rules.OfType<INetFwRule>().Where(x => x.Name == inputname).FirstOrDefault();
richTextBox1.Text += firewallRule.Profiles.ToString();
}
Run Code Online (Sandbox Code Playgroud)
返回的值是一个返回的整数值,如下所示:
现在我想知道是否允许域、公共或私人配置文件。我的返回值从 4 到 2147483647 到处都是,我认为它是以某种方式编码的,但是我找不到任何解释说明输出的实际含义。有人可以让我知道在哪里可以找到这些信息。
我想我通过几次反复试验找到了答案。
firewallRule.Profiles() 的输出是一个 int 值。
所以输出值为:
域 + 私有 + 公共 = 输出值
如果启用了这些值,则数学看起来像:
1 + 2 + 4 = 7
所以它只是整数值的前 3 位。上图应该是:
1 + 4 = 5
由于未启用专用网络,因此不会添加 2。
如果找不到您要查找的防火墙,则是找到 2147483647 值时(最大正 int32 值)
| 归档时间: |
|
| 查看次数: |
512 次 |
| 最近记录: |