如何编程实现列出当前网络里所有的机器名
在网络里面用net view不能列出机器列表,还有什么办法可以列出机器列表吗?
如何编程实现。
[解决办法]
::原理介:先通net view命令取局域的所有
::(法查有安netbios定的);再ping些(ping不通也)
::然後查arp存。
::code by youxi01@bbs.bathome.cn 2008-1-7
@echo off &setlocal enabledelayedexpansion
title 局域空IP查@bbs.bathome.cn
Rem '/*========取本的IP位址(局域)=========*/
echo 正在取本的IP地址,稍等...
for /f "tokens=3 skip=2 delims=: " %%i in ('nbtstat -n') do (
set "IP_addr=%%i"
set IP_addr=!IP_addr:~1,-1!
echo 本IP:!IP_addr!
goto :next
)
:next
for /f "delims=. tokens=1,2,3,4" %%i in ("%IP_addr%") do set IP_fd=%%i.%%j.%%k
Rem '/*========取名============*/
echo.&echo 正在取局域名,稍等...
echo 於段 %IP_fd%.* 的有:&echo.
for /f "delims=" %%i in ('net view') do (
set "var=%%i"
rem ----------取名------------
if "!var:~0,2!"=="\\" (
set "var=!var:~2!"
echo !var!
Rem ----------ping名--------------
ping -n 1 !var!>nul
)
)
echo.&echo -----------------------------
Rem '/*========提取arp存=========*/
echo.&echo 正在取局域IP,稍等...& echo.
for /f "skip=3 tokens=1,* delims= " %%i in ('arp -a') do echo IP: %%i 已使用
echo.&echo -----------------------------
echo 程式完成,使用!
pause>nul
::试试把这些文字存成批处理档,看看是否达到你的要求