windows2008防火墙如何批量添加ip段,ip范围太多,手工一个个加太繁琐,容易弄错。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows2008防火墙如何批量添加ip段,ip范围太多,手工一个个加太繁琐,容易弄错。相关的知识,希望对你有一定的参考价值。
windows2008防火墙如何批量添加ip段,ip范围太多,手工一个个加太繁琐,容易弄错。
参考技术A netsh advfirewall firewall set rule name="TEST" new remoteip=192.168.1.1,192.168.1.3,192.168.1.4-192.168.1.255使用上述的例子进行添加,替换你需要的规则 参考技术B 技术有限只能关闭防火墙解决了 参考技术C netsh advfirewall firewall add rule name="AllowConnectIP" protocol=TCP dir=in remoteip="192.168.1.0/255.255.255.0,192.168.2.0/255.255.255.0" action=allow
备注:
add rule name="AllowConnectIP" : 添加的规则的名称
protocol=TCP : 使用的协议类型
dir=in : 添加的是入站规则,出站规则则是dir=out
remoteip=192.168.1.0/255.255.255.0 : 添加远程访问的IP,如果需要添加多个IP段,则需要将其用双引号括起来,并使用逗号分隔;
action=allow : 防火墙的动作,是允许还是拒绝
另外还有端口选项,更多选项可通过netsh advfirewall firewall add rule来查看
如何添加规则以阻止 chrome 或 firefox 等程序使用 Window 防火墙或 netsh advfirewall-C# 访问任何 IP 地址?
【中文标题】如何添加规则以阻止 chrome 或 firefox 等程序使用 Window 防火墙或 netsh advfirewall-C# 访问任何 IP 地址?【英文标题】:How to add rule to block program like chrome or firefox from accessing any Ip address using Window firewall or netsh advfirewall-C#? 【发布时间】:2021-11-04 09:34:11 【问题描述】:我想使用 netsh advfirewall 防火墙添加一条规则,以阻止任何程序(如 chrome 或 firefox)访问特定 Ips?感谢您的帮助!!!
这是我尝试过的代码,但它不起作用。请指导我。
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/c netsh advfirewall firewall add rule name=Block inbound traffic from 192.168.0.2 over TCP port 4000 dir=in action=block program=C:/Program Files/Mozilla Firefox/Firefox.exe enable=yes protocol=TCP remoteip=192.168.0.2 profile=domain,private,public";
startInfo.Verb = "runas";
process.StartInfo = startInfo;
process.Start();
【问题讨论】:
【参考方案1】:我无法帮助您解决 netsh 的问题(也不知道您为什么从 C# 调用它),但 netsh 调用最明显的错误是 program=C:/Program Files/Mozilla Firefox/Firefox.exe
参数中缺少对空格的引用。由于空格被用作参数分隔符,它被解析为三个单独的参数,program=c:/Program
和 Files/Mozilla
和 Firefox/Firefox.exe
。您可以在Arguments 描述中看到最简单的修复:在路径周围添加转义引号,即"... program=\"C:/Program Files/Mozilla Firefox/Firefox.exe\" ..."
。
其他建议:
AFAICS,你不需要cmd.exe
来调用netsh
,所以你可以简单地调用netsh.exe
为什么在路径中使用正斜杠?它适用于大多数东西,但不适用于所有东西,所以我建议使用反斜杠 \
,因为这是 Windows 默认路径分隔符。
我推荐ArgumentList
,而不是在一个字符串Arguments
中提供所有参数(并冒着被引用等微妙之处绊倒的风险)。
最后会是这样的:
var startInfo = new ProcessStartInfo()
WindowStyle = ProcessWindowStyle.Hidden,
FileName = "netsh",
ArgumentList =
"advfirewall", "firewall",
"add", "rule", "name=Block", "inbound", "traffic",
"from", "192.168.0.2", "over", "TCP", "port", "4000", "dir=in", "action=block",
@"program=C:\Program Files\Mozilla Firefox\Firefox.exe",
"enable=yes",
"protocol=TCP",
"remoteip=192.168.0.2",
"profile=domain,private,public",
,
Verb = "runas",
;
Process.Start(startInfo);
【讨论】:
感谢您的回复 我明白了您的意思,但我无法使用 ArgumentList,因为它显示错误 ProcessStartinfo does not contains definition of "ArgumentList",实际上我的 Windows 系统上有多个网络适配器。我想要firefox 或 chrome 使用特定的适配器因此我通过阻止 ip 尝试了上述内容,但我未能让我的浏览器访问特定的网络适配器。这必须以编程方式完成。以上是关于windows2008防火墙如何批量添加ip段,ip范围太多,手工一个个加太繁琐,容易弄错。的主要内容,如果未能解决你的问题,请参考以下文章