gpt4 book ai didi

windows - 使用 Windows 防火墙拒绝访问 50,000 个特定 IP 地址

转载 作者:可可西里 更新时间:2023-11-01 09:37:48 25 4
gpt4 key购买 nike

我需要在 Windows 防火墙中拒绝访问大约 50,000 个 IP 地址; netsh advfirewall 只允许我添加大约 700。这如何实现?

最佳答案

看起来您可以使用 c# 应用程序以编程方式将规则添加到 Windows 防火墙。您需要添加对 FirewallAPI.dll 的引用,它位于 c:\windows\system32

做这样的事情:

using NetFwTypeLib; // Located in FirewallAPI.dll
...
INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(
Type.GetTypeFromProgID("HNetCfg.FWRule"));
firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
firewallRule.Description = "Block this!";
firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
firewallRule.Enabled = true;
firewallRule.InterfaceTypes = "All";
firewallRule.RemoteAddresses = "x.x.x.x" //or x.x.x.x,x.x.x.x,... See Note 1
firewallRule.Name = "Block IP x.x.x.x";

INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(
Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
firewallPolicy.Rules.Add(firewallRule);

注意 1:您可以尝试制定 50,000 个单独的规则(此代码添加 1 个规则)或将 50,000 个远程 IP 添加到 1 个规则。

这是用于入站阻塞,如果你想出站阻塞也改变方向。

引用:改编自Any way to turn the "internet off" in windows using c#?https://msdn.microsoft.com/en-us/library/aa366458(VS.85).aspx

关于windows - 使用 Windows 防火墙拒绝访问 50,000 个特定 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25283071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com