读取防火墙设置以查看在 windows 上使用 c# 的应用程序允许哪些配置文件
read firewall settings to see which profiles are allowed on applications with c# on windows
我正在尝试以编程方式读取允许应用程序通过防火墙的配置文件。我一直在使用以下 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();
}
值 returned 是一个整数值 returned,如下所示:
现在我想知道是否允许域、public 或私人配置文件。我的 return 值从 4 到 2147483647 无处不在,我假设它以某种方式编码,但我找不到说明输出实际含义的解释。谁能告诉我在哪里可以找到这些信息。
我想我通过反复试验找到了答案。
firewallRule.Profiles() 的输出是一个 int 值。
所以输出值为:
Domain + Private + public = output value
如果启用了这些值,则数学看起来像:
1 + 2 + 4 = 7
所以它只是整数值的前 3 位。上图为:
1 + 4 = 5
由于Private network没有开启,所以2不会加入
如果找不到您要查找的防火墙,那么就是在找到 2147483647 值时(最大正 int32 值)
我正在尝试以编程方式读取允许应用程序通过防火墙的配置文件。我一直在使用以下 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();
}
值 returned 是一个整数值 returned,如下所示:
现在我想知道是否允许域、public 或私人配置文件。我的 return 值从 4 到 2147483647 无处不在,我假设它以某种方式编码,但我找不到说明输出实际含义的解释。谁能告诉我在哪里可以找到这些信息。
我想我通过反复试验找到了答案。
firewallRule.Profiles() 的输出是一个 int 值。
所以输出值为:
Domain + Private + public = output value
如果启用了这些值,则数学看起来像:
1 + 2 + 4 = 7
所以它只是整数值的前 3 位。上图为:
1 + 4 = 5
由于Private network没有开启,所以2不会加入
如果找不到您要查找的防火墙,那么就是在找到 2147483647 值时(最大正 int32 值)