dos windows linux 下用脚本/批处理ping一个网段内的所有机器
dos/windows的命令行/批处理
for /l %p in (1,1,254) do @ping 192.168.1.%p -n 1 |find "reply from" /i
在dos窗口执行上面的批命令,就会显示出所有开机的ping结果.
如果显示ping不通的所有结果,则命令为:
for /l %p in (1,1,254) do @ping 192.168.1.%p -n 1 |find "request timed out" /i
如果要ping IP地址范围为(192.168.1.30~192.168.1.60),则命令改为.
for /l %p in (30,1,60) do @ping 192.168.1.%p -n 1 |find "reply from" /i
如果把上面的命令写入批处理文件(.bat,.cmd)中,要在%前再加一个%,如下:
rem myping.bat
for /l %%p in (1,1,254) do @ping 192.168.1.%%p -n 1 |find "reply from" /i
linux下的命令/脚本:
1,可以用ping -b 广播地址;
2,用脚本实现:
#!/bin/sh
ip=1 #通过修改初值及下面的判断条件实现ping任一段的ip
while [ $ip != "254" ]; do
ping 192.168.1.$ip -c 1 |grep "bytes from 192.168.1.$ip"
ip=`expr "$ip" "+" "1"`
done
for /l %p in (1,1,254) do @ping 192.168.1.%p -n 1 |find "reply from" /i
在dos窗口执行上面的批命令,就会显示出所有开机的ping结果.
如果显示ping不通的所有结果,则命令为:
for /l %p in (1,1,254) do @ping 192.168.1.%p -n 1 |find "request timed out" /i
如果要ping IP地址范围为(192.168.1.30~192.168.1.60),则命令改为.
for /l %p in (30,1,60) do @ping 192.168.1.%p -n 1 |find "reply from" /i
如果把上面的命令写入批处理文件(.bat,.cmd)中,要在%前再加一个%,如下:
rem myping.bat
for /l %%p in (1,1,254) do @ping 192.168.1.%%p -n 1 |find "reply from" /i
linux下的命令/脚本:
1,可以用ping -b 广播地址;
2,用脚本实现:
#!/bin/sh
ip=1 #通过修改初值及下面的判断条件实现ping任一段的ip
while [ $ip != "254" ]; do
ping 192.168.1.$ip -c 1 |grep "bytes from 192.168.1.$ip"
ip=`expr "$ip" "+" "1"`
done
高级一点的如下:
for /l %i in (1,1,255) do @ping -n 1 -w 40 192.168.1.%i & if errorlevel 1 (echo 192.168.1.%i>>na.txt) else (echo 192.168.1.%i>>act.txt)
回车,将自动探测192.168.1.X网段的ip响应情况. 现在是假设你的电脑属于192.168.1.X网段某一部.
存活的保存在 act.txt,不通的在 na.txt;
根据实际改改 -n 1 -w 40 的参数,以达到精准。
还有个高级应用:
@for /l %i in (1,1,65535) do @ping -n 1 -w 40 192.168.%i & if errorlevel 1 (echo 192.168.%i>>na.txt) else (echo 192.168.%i>>act.txt)