Board logo

标题: [网络连接] 如何写一个查询IP的批处理啊 [打印本页]

作者: lion991128    时间: 2014-10-21 11:41     标题: 如何写一个查询IP的批处理啊

求助有没有大大知道怎么才能做一个查询内网一个网段中开机的计算机名+ip地址的批处理并导出为TXT的有吗?
作者: Batcher    时间: 2014-10-21 12:30

http://bbs.bathome.net/thread-845-1-1.html
http://bbs.bathome.net/thread-10275-1-1.html
http://bbs.bathome.net/thread-24168-1-1.html
http://bbs.bathome.net/thread-24854-1-1.html
http://bbs.bathome.net/thread-27372-1-1.html
http://bbs.bathome.net/thread-27451-1-1.html
作者: lion991128    时间: 2014-10-21 12:56

回复 2# Batcher


    多谢 大大的指导
作者: 522235677    时间: 2014-10-21 13:22

  1. @echo off & setlocal enabledelayedexpansion & title 局域网扫描
  2. set /p net=输入网段(默认192.168.1):
  3. if "%net%"=="" set net=192.168.1
  4. set /p start=输入起始IP地址(默认起始地址为1):
  5. if "%start%"=="" set start=1
  6. set /p end=输入终止IP地址(默认终止地址为254):
  7. if "%end%"=="" set end=254
  8. set "txt=局域网在线IP扫描结果.txt"
  9. set n=0
  10. set m=0
  11. >>%txt% echo 扫描地址:%net%.%start% - %net%.%end%
  12. echo.在线IP MAC地址 计算机名
  13. for /l %%a in (%start% 1 %end%) do (
  14. set /p a="%net%.%%a"<nul
  15.         ping %net%.%%a -n 1 -w 50 >nul
  16.         if errorlevel 1 (
  17.                 cd.
  18.         ) else (
  19. for /l %%i in (1,1,15) do (set /p=<nul)
  20.                 set /p=%net%.%%a <nul
  21.                 for /f "tokens=1*" %%b in ('nbtstat -a %net%.%%a^|findstr "<00>.*唯一 MAC <00>.*UNIQUE"') do (
  22.                         if "%%b"=="MAC" (
  23. for /f "tokens=2 delims== " %%d in ("%%c") do (
  24. <nul set /p=%%d      
  25. <nul set /p=!pcn!
  26. >>%txt% echo %net%.%%a %%d !pcn!
  27. set /a n+=1
  28. )
  29. ) else (
  30. set pcn=%%b
  31. if "!pcn:~-4!"=="<00>" set pcn=!pcn:~0,-4!
  32. )
  33. set q=1
  34.                 )
  35. if "!q!" neq "1" for /f "tokens=2" %%b in ('arp -a %net%.%%a^|findstr "%net%.%%a.*-[a-f0-6]"') do <nul set /p=%%b &<nul set /p=-&set /a m+=1
  36.                 echo.
  37. set q=
  38. set /p="192.168.1.%%a"<nul
  39.         )
  40. for /l %%i in (1,1,15) do (set /p=<nul)
  41. )
  42. >>%txt% echo 扫描结果:%n%台在线计算机 %m%台其它设备 (%date% %time:~0,8%)
  43. (for /l %%a in (1 1 60) do <nul set /p=-)>>%txt%
  44. echo,>>%txt%
  45. set /p=扫描完成,发现%n%台在线计算机。<nul
  46. if "%m%" neq "0" set /p=%m%台其它设备。<nul
  47. echo.
  48. echo.结果保存在“%txt%”
  49. pause
  50. start "" %txt%
复制代码

作者: hnldwhm52    时间: 2014-10-21 14:56

xuexixiexie!!!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2