@echo off
setlocal enabledelayedexpansion
color 0a
::判断本机网段主机是否在线,并且获得主机名,ttl和mac地址
:: --by lf 2008-12-06
::速度太慢了点,,,
::取得本机ip、mac和主机名
if "%OS%"=="Windows_NT" set "Space= "
set "macself=%Space%Physical Address"
set "ipself=%Space%IP Address"
set "nameself=%Space%Host Name "
for /f "tokens=1,* delims=." %%i in ('ipconfig /all') do (
for %%a in (macself ipself nameself) do (
if "%%i"=="!%%a!" set %%a=%%j
)
)
::如出现获取不到任何ip的情况请用下列检测,并修改Space的宽度
::echo %macself%
::echo %ipself%
::echo %nameself%
::pause
set macself=%macself:*: =%
set ipself=%ipself:*: =%
set nameself=%nameself:*: =%
::取得ip前三段
for /f "tokens=1,2,3 delims=." %%i in ("%ipself%") do set ipa=%%i.%%j.%%k
::开始检测
echo.
Echo ┏──┤ 局域网检测工具 ├─────────────────┓
echo │ │
Echo ├──┬──主机名───┬── ip 地址──┬ttl值┬── MAC 地址──┤
ping/n 1 127.1>nul
for /l %%i in (1 1 254) do (
set ip=%ipa%.%%i
title Ip Address !ip!
ping/n 1 /w 0.5 !ip! >nul && (
set "name=Pinging"
set "tt=Reply"
for /f "tokens=1,* delims= " %%i in ('ping -a -n 1 -w 0.5 !ip!') do (
for %%a in (name tt) do (
if "%%i"=="!%%a!" set %%a=%%j
)
)
for /f "tokens=1 delims= " %%i in ("!name!") do set name=%%i
for /f "tokens=3 delims==" %%i in ("!tt!") do set tt=%%i
for /f "tokens=2 skip=3 delims= " %%i in ('arp -a !ip!') do set mac=%%i
if !ip!==!ipself! (
set z=本机
set mac=!macself!
set name=!nameself!) else (set z= ● )
if !name!==!ip! (set name=无法找到主机名) else (
set name=!name!
set name=!name:~0,14!
)
set ip=!ip!
set ip=!ip:~0,15!
set tt=!tt!
set tt=!tt:~0,3!
echo │!z!│ !name! │ !ip!│ !tt! │!mac!│
)
)
ping/n 1 127.1>nul
Echo ┗──┴────────┴────────┴───┴────────┛
title 局域网检测工具
pause>nul
rd /q /s "%temp%\ip\"
© 著作权归作者所有
下一篇: 备份当前服务
文章评论(0)