求个屏蔽病毒网站IP的批处理!!!可以随便加IP!!
下面是屏蔽IP的批处理,我用着非常好用。我现在想用远程调用的方法开机运行这个批处理,问题是客户机不能让顾客输入被屏蔽的IP啊,能不能在批处理中加上被屏蔽的多个IP,而且不用按任何键就可以自动执行。
@echo off && setlocal enabledelayedexpansion
call :getip
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::屏蔽指定的IP/当前连接中的所有IP
:block
set /p site=请输入屏蔽的地址(0为添加当前连接的所有IP):
echo 处理中,请稍候...
if "!site!"=="0" (
@for /f "tokens=4 skip=4 delims=: " %%i in ('netstat -n') do (
call :add %%i
)
) else (
echo !site! | findstr [0-9]*\.[0-9]*\.[0-9]*\.[0-9]* >nul
if !errorlevel!==1 (
for /f "tokens=2 delims=[]" %%i in ('ping -n 1 -w 1 !site!') do (
set site=%%i
)
echo !site! | findstr [0-9]*\.[0-9]*\.[0-9]*\.[0-9]* >nul
if !errorlevel!==1 exit /b
)
call :add !site!
)
pause
exit /b
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::添加IP或域名(%1)到路由表,将被映射到!ip!以屏蔽
:add
set site=%1
if "!site!"=="127.0.0.1" exit /b
@for /f "tokens=1,3 delims= " %%i in ('route print') do (
if "%%j"=="!ip!" (
if "%%i"=="!site!" exit /b
)
)
echo 正在屏蔽!site!
route add !site! !ip! if 2
exit /b
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::得到本机ip将最后一位转换为0,然后作为路由表映射
:getip
for /f %%i in ('hostname') do set host=%%i
for /f "tokens=2 delims=[]" %%i in ('ping -n 1 -w 1 !host!') do set ip=%%i
for /f "tokens=1,2,3 delims=." %%i in ('echo !ip!') do set ip=%%i.%%j.%%k.0
exit /b
[ Last edited by lkfeiyu on 2007-11-16 at 06:46 PM ]