Board logo

标题: 原创!发个实用的局域网快速检测批处理(3月16日更新) [打印本页]

作者: bat-zw     时间: 2008-3-9 18:30    标题: 原创!发个实用的局域网快速检测批处理(3月16日更新)

  原代码如下,我知道现在检测局域网的东东特别多,但我就是喜欢P,同时自己的东西用起来感觉不一样,呵呵(主要是能及时修改完善):
@echo off&color 9f&setlocal EnableDelayedExpansion
title 局域网快速检测工具
echo.
echo.
echo     ************************** 局域网快速检测工具 **************************
echo    *----------------------------------------------------------------------*
echo    *    本工具集检测本机网卡、检测网关、查找局域网所有在线电脑几项功能于一*
echo    *----------------------------------------------------------------------*
echo    *体,特别是当局域网中有活动的ARP木马时,可迅速查找出有问题的电脑。为防 *
echo    *----------------------------------------------------------------------*
echo    *双网卡出错,本工具还增加了用户自行输入IP功能。在使用本工具前请在工具所*
echo     *----------------------------------------------------------------------*
echo     *在的文件夹新建名为gateway和use的文本文档(.txt),在gateway中依次输入 *
echo    *___________________________________*
echo     *局域网关的IP和MAC地址,注意IP和MAC间不能有空格,在USE中依次输入局域网 *
echo     *----------------------------------------------------------------------*
echo     *中所有电脑的IP地址和使用部门或人,一行输入一组并注意IP加个":",这是为 *
echo     *----------------------------------------------------------------------*
echo     *了查找IP时确定字串符结尾符(这就不会在查找以"#"结尾的IP时把以"*#"以及 *
echo     *----------------------------------------------------------------------*
echo     *"$#*"结尾的IP查找出来了,如 1 21 181 )。                *
echo     *----------------------------------------------------------------------*
echo    *  注:当检测局域网时请暂时关闭所有应用程序,在检测时会弹出很多黑色的*
echo    *----------------------------------------------------------------------*
echo   *窗口,这是在运行拼测命令,只要等待一分钟,所有弹出窗口都会自行关闭。  *
echo    *----------------------------------------------------------------------*
echo    ************************************************************************
pause
cls&mode con lines=15
set u=■■■■■■■■■■■■■■■■■■■■■■■■■
set a=0
for /l %%i in (1,1,20) do call :show %%i
cls
echo.&echo.&echo.&echo.
echo    程序正在初始化. . .
echo   ┌─────────────────────────┐
echo     %u%100%%                     
echo   └─────────────────────────┘
ping /n 3 127.1 >nul
if exist l*.txt del l*.txt
if exist mac*.txt del mac*.txt
if exist jiance.txt del jiance.txt
______________________________________________
rem 对本机网卡进行拼测
cls
echo.&echo.&echo.&echo.
set/p lan=    请输入局域网段(输入格式为192.168.1.,直接回车默认为192.168.1.):
if "%lan%"=="" goto p1
goto p2
:p1
set lan=192.168.1.
:p2
cls
echo.&echo.&echo.&echo.
set/p ip=    请输入本机局域网IP地址的最后一个数字(直接回车默认为255):
if "%ip%"=="" goto p3
ping %lan%%ip% -n 2 >nul
if errorlevel 2 goto wrong1
if errorlevel 1 goto wrong1
goto show1
:p3
ping %lan%255 -n 2 >nul
if errorlevel 2 goto wrong1
if errorlevel 1 goto wrong1
:show1
cls
echo.&echo.&echo.&echo.
echo    ====================================
echo    ****************************** 网卡通畅!*******************************
echo    ====================================
ping -n 3 127.1 >nul
______________________________________________
rem 对网关进行拼测
cls&arp -d 2>nul
echo.&echo.&echo.&echo.
set/p pi=    请输入局域网关IP地址的最后一个数字(直接回车默认为1):
if "%pi%"=="" goto p4
ping %lan%%pi% -n 2 >nul
if errorlevel 2 goto wrong2
if errorlevel 1 goto wrong2
goto select1
:p4
ping %lan%1 -n 2 >nul
if errorlevel 2 goto wrong2
if errorlevel 1 goto wrong2
goto select1
______________________________________________
rem 对局域网进行拼测,查找出所有在线电脑
:ping
echo. >lb.txt
echo. >>lb.txt
echo    ==================================== >>lb.txt
echo    ************************ 局域网中以下电脑在线! ************************ >>lb.txt
echo    ==================================== >>lb.txt
for /l %%i in (0,1,255) do start ping -n 1 %lan%%%i
for /f "skip=3 tokens=*" %%k in ('arp -a') do echo %%k >>mac.txt
for /f "tokens=1" %%j in ('findstr /c:"dynamic" mac.txt') do (
    findstr /c:"%%j:" use.txt >>lb.txt
)
cls&mode con lines=30&type lb.txt | more
pause
______________________________________________
rem 检测局域网是否有ARP欺骗
cls&fc gateway.txt jiance.txt
if errorlevel 2 goto find
if errorlevel 1 goto find
goto show2
______________________________________________
rem 查找出中了木马的电脑
:find
cls
echo. >ld.txt
echo. >>ld.txt
echo    ==================================== >>ld.txt
echo    ********************* 局域网中以上电脑中了ARP木马!********************* >>ld.txt
echo    ==================================== >>ld.txt

for /f "skip=3 tokens=2" %%i in (la.txt) do findstr /c:"%%i" mac.txt >>lc.txt
for /f "tokens=1" %%i in (lc.txt) do findstr /c:"%%i:" use.txt >>ld.txt
type ld.txt | more
pause
______________________________________________
:end
cls&mode con lines=15
echo.&echo.&echo.&echo.
echo    ====================================
echo     ************************* 检测完成请按键退出!**************************
echo     ====================================
pause >nul
del l*.txt jiance.txt mac*.txt&goto :eof
:show2
cls&mode con lines=15
echo.&echo.&echo.&echo.
echo    ====================================
echo    ***************** 经检测局域网中无ARP欺骗,网络安全! ******************
echo    ====================================
pause
goto end
:select1
cls
echo.&echo.&echo.&echo.
echo    ====================================
echo    ***************************** 网关通畅!********************************
echo    ====================================
ping -n 2 127.1 >nul&arp -a >la.txt
cls&for /f "skip=3 tokens=1,2" %%i in ('arp -a') do echo %%i%%j >>jiance.txt
:select2
cls
echo.&echo.&echo.&echo.
set/p select2=    是否对局域网进行拼测?(1.拼测 2.不拼测)
if "%select2%"=="1" goto ping
if "%select2%"=="2" goto end
cls
echo.&echo.&echo.&echo.
echo    ====================================
echo    ***************************** 输入错误!********************************
echo    ====================================
ping -n 2 127.1 >nul&goto select2
:wrong1
cls
echo.&echo.&echo.&echo.
echo    ====================================
echo    ************************** 网卡不通,无法检测!*************************
echo    ====================================
ping -n 3 127.1 >nul&goto :eof
:wrong2
cls
echo.&echo.&echo.&echo.
echo    ====================================
echo    ************************** 网络不通,无法检测!*************************
echo    ====================================
ping -n 3 127.1 >nul&goto :eof
:show
cls
set /a a+=4
echo.&echo.&echo.&echo.
echo    程序正在初始化. . .
echo   ┌─────────────────────────┐
echo     !u:~,%1!%a%%%&ping /n 1 127.1 >nul                       
echo   └─────────────────────────┘
goto :eof
[ Last edited by zw19750516 on 2008-3-16 at 02:57 PM ]
作者: bat-zw     时间: 2008-3-10 00:52
呵呵,无人问津,自己给自己加下油了。
作者: hnfeng     时间: 2008-3-10 12:53
多谢分享。
学习了……
作者: HAT     时间: 2008-3-10 13:38
set命令中特殊字符的处理技巧,楼主用的挺好,呵呵。
作者: bjsh     时间: 2008-3-10 18:46
加分 鼓励
作者: bat-zw     时间: 2008-3-10 18:49
谢谢老大了,大家一起加油了!
作者: hhz520     时间: 2008-3-10 21:03
晕  这么多窗口  差D给你吓死  呵呵!
作者: bat-zw     时间: 2008-3-11 03:21
大家请注意在检测时关闭其他应用程序,这个P的特点就是快,但也造成了它的缺点:短时间内(约一分钟)占用内存极高,建议电脑配置不好的不要使用。
作者: dato     时间: 2008-3-11 09:56
不错,能用
作者: bat-zw     时间: 2008-3-11 19:38
我又做了错码的检查,同时对各种情况进行了检测,同时还做了美观上的处理,请大家放心测试和使用了。
作者: bat-zw     时间: 2008-3-16 13:46
为了大家共同提高,只好自私点,自己顶下了,呵呵。
作者: usafbi2007     时间: 2008-3-17 10:40
多谢分享。
学习了……
作者: bat-zw     时间: 2008-3-26 13:31    标题: 再次修改(简化部分代码)


@echo off&color 9f&setlocal EnableDelayedExpansion
title 局域网快速检测工具
echo.
echo.
echo     ************************** 局域网快速检测工具 **************************
echo    *----------------------------------------------------------------------*
echo    *    本工具集检测本机网卡、检测网关、查找局域网所有在线电脑几项功能于一*
echo    *----------------------------------------------------------------------*
echo    *体,特别是当局域网中有活动的ARP木马时,可迅速查找出有问题的电脑。为防 *
echo    *----------------------------------------------------------------------*
echo    *双网卡出错,本工具还增加了用户自行输入IP功能。在使用本工具前请在工具所*
echo     *----------------------------------------------------------------------*
echo     *在的文件夹新建名为gateway和use的文本文档(.txt),在gateway中依次输入 *
echo    *___________________________________*
echo     *局域网关的IP和MAC地址,注意IP和MAC间不能有空格,在USE中依次输入局域网 *
echo     *----------------------------------------------------------------------*
echo     *中所有电脑的IP地址和使用部门或人,一行输入一组并注意IP加个":",这是为 *
echo     *----------------------------------------------------------------------*
echo     *了查找IP时确定字串符结尾符(这就不会在查找以"#"结尾的IP时把以"*#"以及 *
echo     *----------------------------------------------------------------------*
echo     *"$#*"结尾的IP查找出来了,如 1 21 181 )。                *
echo     *----------------------------------------------------------------------*
echo    *  注:当检测局域网时请暂时关闭所有应用程序,在检测时会弹出很多黑色的*
echo    *----------------------------------------------------------------------*
echo   *窗口,这是在运行拼测命令,只要等待一分钟,所有弹出窗口都会自行关闭。  *
echo    *----------------------------------------------------------------------*
echo    ************************************************************************
pause
cls&mode con lines=15
set u=■■■■■■■■■■■■■■■■■■■■■■■■■
set a=0
for /l %%i in (1,1,20) do call :show %%i
cls
echo.&echo.&echo.&echo.
echo    程序正在初始化. . .
echo   ┌─────────────────────────┐
echo     %u%100%%                     
echo   └─────────────────────────┘
ping /n 3 127.1 >nul
if exist l*.txt del l*.txt
if exist mac*.txt del mac*.txt
if exist jiance.txt del jiance.txt
______________________________________________
rem 对本机网卡进行拼测
cls
set lan=192.168.1.
echo.&echo.&echo.&echo.
set/p lan=    请输入局域网段(输入格式为192.168.1.,直接回车默认为192.168.1.):
cls
set ip=255
echo.&echo.&echo.&echo.
set/p ip=    请输入本机局域网IP地址的最后一个数字(直接回车默认为255):
ping %lan%%ip% -n 2 >nul
if errorlevel 1 goto wrong1
cls
echo.&echo.&echo.&echo.
echo    ====================================
echo    ****************************** 网卡通畅!*******************************
echo    ====================================
ping -n 3 127.1 >nul
______________________________________________
rem 对网关进行拼测
cls&arp -d 2>nul
set pi=1
echo.&echo.&echo.&echo.
set/p pi=    请输入局域网关IP地址的最后一个数字(直接回车默认为1):
ping %lan%%pi% -n 2 >nul
if errorlevel 1 goto wrong2
goto select1
______________________________________________
rem 对局域网进行拼测,查找出所有在线电脑
:ping
echo. >lb.txt
echo. >>lb.txt
echo    ==================================== >>lb.txt
echo    ************************ 局域网中以下电脑在线! ************************ >>lb.txt
echo    ==================================== >>lb.txt
for /l %%i in (0,1,255) do start ping -n 1 %lan%%%i
for /f "skip=3 tokens=*" %%k in ('arp -a') do echo %%k >>mac.txt
for /f "tokens=1" %%j in ('findstr /c:"dynamic" mac.txt') do (
    findstr /c:"%%j:" use.txt >>lb.txt
)
cls&mode con lines=30&type lb.txt | more
pause
______________________________________________
rem 检测局域网是否有ARP欺骗
cls&fc gateway.txt jiance.txt
if errorlevel 2 goto find
if errorlevel 1 goto find
goto show2
______________________________________________
rem 查找出中了木马的电脑
:find
cls
echo. >ld.txt
echo. >>ld.txt
echo    ==================================== >>ld.txt
echo    ********************* 局域网中以上电脑中了ARP木马!********************* >>ld.txt
echo    ==================================== >>ld.txt

for /f "skip=3 tokens=2" %%i in (la.txt) do findstr /c:"%%i" mac.txt >>lc.txt
for /f "tokens=1" %%i in (lc.txt) do findstr /c:"%%i:" use.txt >>ld.txt
type ld.txt | more
pause
______________________________________________
:end
cls&mode con lines=15
echo.&echo.&echo.&echo.
echo    ====================================
echo     ************************* 检测完成请按键退出!**************************
echo     ====================================
pause >nul
del l*.txt jiance.txt mac*.txt&goto :eof
:show2
cls&mode con lines=15
echo.&echo.&echo.&echo.
echo    ====================================
echo    ***************** 经检测局域网中无ARP欺骗,网络安全! ******************
echo    ====================================
pause
goto end
:select1
cls
echo.&echo.&echo.&echo.
echo    ====================================
echo    ***************************** 网关通畅!********************************
echo    ====================================
ping -n 2 127.1 >nul&arp -a >la.txt
cls&for /f "skip=3 tokens=1,2" %%i in ('arp -a') do echo %%i%%j >>jiance.txt
:select2
cls
echo.&echo.&echo.&echo.
set/p select2=    是否对局域网进行拼测?(1.拼测 2.不拼测)
if "%select2%"=="1" goto ping
if "%select2%"=="2" goto end
cls
echo.&echo.&echo.&echo.
echo    ====================================
echo    ***************************** 输入错误!********************************
echo    ====================================
ping -n 2 127.1 >nul&goto select2
:wrong1
cls
echo.&echo.&echo.&echo.
echo    ====================================
echo    ************************** 网卡不通,无法检测!*************************
echo    ====================================
ping -n 3 127.1 >nul&goto :eof
:wrong2
cls
echo.&echo.&echo.&echo.
echo    ====================================
echo    ************************** 网络不通,无法检测!*************************
echo    ====================================
ping -n 3 127.1 >nul&goto :eof
:show
cls
set /a a+=4
echo.&echo.&echo.&echo.
echo    程序正在初始化. . .
echo   ┌─────────────────────────┐
echo     !u:~,%1!%a%%%&ping /n 1 127.1 >nul                       
echo   └─────────────────────────┘
goto :eof

作者: goofy123     时间: 2008-3-26 16:44
很好,向你学习中~
作者: vlq2599     时间: 2008-3-26 17:24
兄弟,不错,我只能给你加一分,不要嫌少呀
作者: lqf57     时间: 2008-4-4 17:20
谢谢,学习中