您的位置:首页 > 运维架构 > Linux

dos windows linux 下用脚本/批处理ping一个网段内的所有机器

2014-04-27 13:16 1086 查看


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 %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)


原文:PING一个网段内的所有机器

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: