仅通过使用 Batch ping 服务器名称列表来获取 IP 地址
Grab IP addresses only by pinging list of server names using Batch
我有一个包含数百个服务器名称列表的文本文件
Server1
Server2
Server3
Server4
等等...
我想要 运行 一个批处理文件,它将获取这个文件,对所有文件执行 ping 操作,return 如果找到 IP 地址,或者 "DOWN" 如果无法访问或未找到.我想让输出进入output.txt,输出只需要是IP地址或"DOWN"。
示例输出:
176.28.29.100
DOWN
176.28.29.105
176.28.29.110
编辑:我是批处理的新手,到目前为止我已经这样做了:将服务器名放入 excel,在另一列中获取服务器名的数量
ping -n 1 servername | findstr "Pinging host" >> out.txt
...
我得到的输出格式是
Ping request could not find host Server1. Please check the name and try again.
Pinging Sever2 [176.28.29.105] with 32 bytes of data:
Reply from 176.28.29.110: Destination host unreachable.
只想获取 IP
逐行处理文件,使用for /f
:
@echo off
setlocal enabledelayedexpansion
for /f %%i in (servers.txt) do (
set p=DOWN
set r=no response
for /f "tokens=2 delims=[]" %%p in ('ping -n 1 -w 1 %%i^|find "["' ) do set p=%%p
ping -n 1 -w 2000 %%i|find "TTL" >nul && set r=running
echo %%i is !p! !r!
)
(根据您的需要调整 echo
行)
你可以这样试试:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (server.txt) do (
set "$ip="
for /f "delims=[] tokens=2" %%b in ('ping -n 1 %%a ^| find "["') do (
set "$ip=%%b"
)
if defined $ip (echo %%a - !$ip! OK) else (echo %%a KO)
)
我有一个包含数百个服务器名称列表的文本文件
Server1
Server2
Server3
Server4
等等...
我想要 运行 一个批处理文件,它将获取这个文件,对所有文件执行 ping 操作,return 如果找到 IP 地址,或者 "DOWN" 如果无法访问或未找到.我想让输出进入output.txt,输出只需要是IP地址或"DOWN"。
示例输出:
176.28.29.100
DOWN
176.28.29.105
176.28.29.110
编辑:我是批处理的新手,到目前为止我已经这样做了:将服务器名放入 excel,在另一列中获取服务器名的数量
ping -n 1 servername | findstr "Pinging host" >> out.txt
...
我得到的输出格式是
Ping request could not find host Server1. Please check the name and try again.
Pinging Sever2 [176.28.29.105] with 32 bytes of data:
Reply from 176.28.29.110: Destination host unreachable.
只想获取 IP
逐行处理文件,使用for /f
:
@echo off
setlocal enabledelayedexpansion
for /f %%i in (servers.txt) do (
set p=DOWN
set r=no response
for /f "tokens=2 delims=[]" %%p in ('ping -n 1 -w 1 %%i^|find "["' ) do set p=%%p
ping -n 1 -w 2000 %%i|find "TTL" >nul && set r=running
echo %%i is !p! !r!
)
(根据您的需要调整 echo
行)
你可以这样试试:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (server.txt) do (
set "$ip="
for /f "delims=[] tokens=2" %%b in ('ping -n 1 %%a ^| find "["') do (
set "$ip=%%b"
)
if defined $ip (echo %%a - !$ip! OK) else (echo %%a KO)
)