大佬教程收集整理的这篇文章主要介绍了Windows防火墙netsh阻止文本文件中的所有ips,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Windows 2008 R2
@echo off if "%1"=="list" ( netsh advfirewall firewall show rule Blockit | findstr RemoteIP exit/b ) :: Deleting existing block on ips netsh advfirewall firewall delete rule name="Blockit" :: Block new ips (while reading them from blockit.txt) for /f %%i in (blockit.txt) do ( netsh advfirewall firewall add rule name="Blockit" protocol=any dir=in action=block remoteip=%%i netsh advfirewall firewall add rule name="Blockit" protocol=any dir=out action=block remoteip=%%i ) :: call this batch again with list to show the blocked IPs call %0 list
问题是,此脚本为每个被阻止的IP创建了一个单独的规则.
有没有办法在同一规则上禁止多个ips创建更少的规则?据我记得,每条规则最多允许200个被禁止的ips.因此,当找到ip number 201时,它应该创建一个新规则.这样,如果我们有1000个ips来阻止,它将只创建5条规则x 200 ip每条规则而不是1000条规则.
希望有人可以帮助我.谢谢
@echo off setlocal enabledelayedexpansion if "%1"=="list" ( SET /A RULECOUNT=0 for /f %%i in ('netsh advfirewall firewall show rule name^=all ^| findstr Blockit') do ( SET /A RULECOUNT+=1 netsh advfirewall firewall show rule Blockit!RULECOUNT! | findstr RemoteIP ) SET "RULECOUNT=" exit/b ) REM Deleting existing block on ips SET /A RULECOUNT=0 for /f %%i in ('netsh advfirewall firewall show rule name^=all ^| findstr Blockit') do ( SET /A RULECOUNT+=1 netsh advfirewall firewall delete rule name="Blockit!RULECOUNT!" ) SET "RULECOUNT=" REM Block new ips (while reading them from blockit.txt) SET /A IPCOUNT=0 SET /A BLOCKCOUNT=1 for /f %%i in (blockit.txt) do ( SET /A IPCOUNT+=1 if !IPCOUNT! == 201 ( netsh advfirewall firewall add rule name="Blockit!BLOCKCOUNT!" protocol=any dir=in action=block remoteip=!IPADDR! netsh advfirewall firewall add rule name="Blockit!BLOCKCOUNT!" protocol=any dir=out action=block remoteip=!IPADDR! SET /A BLOCKCOUNT+=1 SET /A IPCOUNT=1 set IPADDR=%%i ) else ( if not "!IPADDR!" == "" ( set IPADDR=!IPADDR!,%%i ) else ( set IPADDR=%%i ) ) ) REM add the final block of IPs of length less than 200 netsh advfirewall firewall add rule name="Blockit!BLOCKCOUNT!" protocol=any dir=in action=block remoteip=!IPADDR! netsh advfirewall firewall add rule name="Blockit!BLOCKCOUNT!" protocol=any dir=out action=block remoteip=!IPADDR! SET "IPCOUNT=" SET "BLOCKCOUNT=" SET "IPADDR=" REM call this batch again with list to show the blocked IPs call %0 list
顺便说一句,如果是我,我可能会想要为这种事情学习Powershell(或者实际上是在半现代微软平台上编写任何脚本).一旦掌握了它,你会发现它比批处理文件更直观.
以上是大佬教程为你收集整理的Windows防火墙netsh阻止文本文件中的所有ips全部内容,希望文章能够帮你解决Windows防火墙netsh阻止文本文件中的所有ips所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。