📅  最后修改于: 2023-12-03 14:59:43.351000             🧑  作者: Mango
防火墙是计算机系统中一种用于保障计算机安全的软件或硬件设备,其主要职责是对网络流量进行控制。Windows操作系统中,防火墙默认会禁用所有的入站数据流量,需要用户手动添加入站规则来允许特定的数据流量进入计算机。
本篇文章将介绍如何使用C#语言获取或创建防火墙入站规则端口,以帮助程序员更方便地管理网络流量和保障计算机安全。
获取防火墙入站规则端口可以使用Windows Firewall with Advanced Security API,这是Windows操作系统提供的一组API,可以方便地管理防火墙规则。
以下是获取防火墙入站规则端口的示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using NetFwTypeLib;
namespace FwTest
{
class Program
{
static void Main(string[] args)
{
var firewallPolicy = Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")) as INetFwPolicy2;
var rules = firewallPolicy.Rules;
foreach (INetFwRule2 rule in rules)
{
if (rule.Direction == NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN &&
rule.Enabled == true && rule.Protocol == (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP)
{
Console.WriteLine("Name: {0}, Protocol: {1}, LocalPorts: {2}",
rule.Name, rule.Protocol, rule.LocalPorts);
}
}
}
}
}
说明:
如果需要创建自定义的入站规则,可以使用INetFwPolicy2.Rules.Add()方法,以下是创建入站规则的示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using NetFwTypeLib;
namespace FwTest
{
class Program
{
static void Main(string[] args)
{
var firewallPolicy = Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")) as INetFwPolicy2;
var rule = Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule")) as INetFwRule;
rule.Name = "Test Rule";
rule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP;
rule.LocalPorts = "3389";
rule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
rule.Enabled = true;
firewallPolicy.Rules.Add(rule);
Console.WriteLine("Rule added successfully ");
}
}
}
说明:
以上是通过C#代码实现获取或创建防火墙入站规则端口的方法,希望对程序员有所帮助。