[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] [已解决]批处理如何检测局域网在线计算机名与ip地址,并保存到txt文件中?

本帖最后由 ygqiang 于 2011-12-30 18:11 编辑
  1. @echo off
  2. for /f "tokens=15 delims= " %%i in ('ipconfig ^| find /i "IP Address"') do (
  3.     set fsip=%%i
  4. )
  5. echo %fsip%
  6. pause
  7. for /f "tokens=1,2,3 delims=." %%i in ("%fsip%") do (
  8.     set a=%%i.%%j.%%k
  9. )
  10. set Gateway=%a%.1
  11. echo %a%
  12. pause
  13. del /f /q 在线ip.txt
  14. del /f /q 离线ip.txt
  15. for /l %%m in (1,1,254) do (
  16.         ping.exe %a%.%%m -n 1 -w 300 >nul&&echo %a%.%%m>>在线ip.txt||echo %a%.%%m>>离线ip.txt
  17. )
  18. exit
复制代码
这个bat的功能是:
机器都装xp系统,检测局域网在线ip,并保持到txt文件中

能否添加代码,实现如下功能:

1、在txt文件中,前面显示计算机名字,后面显示对应的ip,比如下面这种:
bbjy                   192.168.9.27
bnjy                   192.168.9.26
ZWTSJYS2          192.168.9.28
wjljfn001            192.168.9.32

最好ip地址最前面,都是距离计算机名的最前面20个字符(因为有的计算机名比较长)

这个只要上面与下面的ip地址大体能对齐就可以,不需要太严格

2、同一个局域网中,计算机的工作组不同,代码是否需要考虑到这种情况?
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off &setlocal enabledelayedexpansion
  2. Title 局域网空闲IP查询
  3. Rem '/*========获取本机的IP地址(局域网)=========*/
  4. echo 正在获取本机的IP地址,请稍等...
  5. for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do (
  6. set "IP_addr=%%i"
  7. set IP_addr=!IP_addr:~1,-1!
  8. echo 本机IP为:!IP_addr!
  9. goto :next
  10. )
  11. :next
  12. for /f "delims=. tokens=1,2,3,4" %%i in ("%IP_addr%") do set IP_fd=%%i.%%j.%%k
  13. Rem '/*========获取计算机名============*/
  14. echo.&echo 正在获取局域网内计算机名,请稍等...
  15. echo 处于网段 %IP_fd%.* 的计算机有:&echo.
  16. for /f "delims=" %%i in ('net view') do (
  17. set "var=%%i"
  18. rem ----------获取计算机名称------------
  19. if "!var:~0,2!"=="\\" (
  20. set "var=!var:~2!"
  21. echo !var!
  22. Rem ----------ping计算机名--------------
  23. ping -n 1 !var!>nul
  24. )
  25. )
  26. echo.&echo -----------------------------
  27. Rem '/*========提取arp缓存=========*/
  28. echo.&echo 正在获取局域网内计算机IP,请稍等...& echo.
  29. for /f "skip=3 tokens=1,* delims= " %%i in ('arp -a') do echo IP: %%i 已经使用
  30. echo.&echo -----------------------------
  31. echo 程序完成,谢谢使用!@Wenguolin.Com
  32. pause>nul
复制代码
网上找到的这个bat代码,可以获取本地局域网内的计算机名。

TOP

能否将2楼与1楼的代码,合并在一起呢?

这样应该就可以满足我的需求了吧?

TOP

顶。请帮忙解决下问题,谢谢

TOP

顶。下。。。

TOP

多谢10楼朋友。

经过测试,可以正常运行。非常感谢

TOP

返回列表