使用NetFwTypeLib仅允许访问一小部分IP地址吗? C#

问题描述

我想从本质上“锁定”计算机,并阻止计算机从所有来源发送和接收信息,只有一小部分IP地址可以向其发送信息。目前,我能想到的唯一方法是阻止除一个端口之外的所有端口,并为该端口提供地址访问权限。我什至不是100%肯定会行得通,但我觉得必须有一种更好的方法来完成任务。

我打算如何授予IP访问权限的示例:

using System;
using System.Runtime.InteropServices;
using System.Text;
using NetFwTypeLib;
namespace WinFirewall
{
    public class FWCtrl
    {
        const string guidFWPolicy2 = "{E2B3C97F-6AE1-41AC-817A-F6F92166D7DD}";
        const string guidRWRule = "{2C5BC43E-3369-4C33-AB0C-BE9469677AF4}";
        static void Main(string[] args)
        {
            FWCtrl ctrl = new FWCtrl();
            ctrl.Setup();
        }
        public void Setup()
        {
            Type typeFWPolicy2 = Type.GetTypeFromCLSID(new Guid(guidFWPolicy2));
            Type typeFWRule = Type.GetTypeFromCLSID(new Guid(guidRWRule));
            INetFwPolicy2 fwPolicy2 = (INetFwPolicy2)Activator.CreateInstance(typeFWPolicy2);
            INetFwRule newRule = (INetFwRule)Activator.CreateInstance(typeFWRule);
            newRule.Name = "InBound_Rule";
            newRule.Description = "Allow inbound traffic from 192.168.0.2 over TCP port 4000";
            newRule.Protocol = (int) NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP;
            newRule.LocalPorts = "4000";
            newRule.RemoteAddress = "192.168.0.2";
            newRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
            newRule.Enabled = true;
            newRule.Grouping = "@firewallapi.dll,-23255";
            newRule.Profiles = fwPolicy2.CurrentProfileTypes;
            newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
            fwPolicy2.Rules.Add(newRule);
        }
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)