使用ping命令检查局域网内存活的主机

使用ping命令检查局域网内存活的主机


作为系统管理员,我们经常会去面对一些批量处理的需求,比如统计一个网段内有多少个存活的主机、IP的使用量之类的需求,面对该类需求我们写脚本会显得比较重,因为该类需求经常都是短期无重复的工作。


这一期,我将会分享给大家一些可粘贴复制、比较简短的使用方式。


linux主机环境下:


for i in {1..254}; do ping -q -i 0.01 -c 3 192.168.1.$i &> /dev/null && echo 192.168.1.$i is alive; done



这里我们把所有ping命令的输出都扔到位桶里,然后用自定义输出的 192.168.1.$i is alive 来标识该网段内存活的主机。



windows主机环境下:


for /l %p in (1,1,254) do @ping -l 1 -n 3 -w 40 192.168.1.%p & if errorlevel 1 (echo 192.168.1.%p>>na.txt) else (echo 192.168.1.%p>>ok.txt)


这里我们使用两个文件来分别记录局域网内存活/非存活主机,na.txt记录所有ping不通的主机,ok.txt则记录所有可以ping通的主机。


这里需要解释的一点是,通过使用errorlevel来辅助判断主机存活/非存活,errorlevel会根据你上一次ping命令的结果改变,而这个变量接受的值:
如果上一个命令执行成功,就接收为0,此时echo %errorlevel%,就会显示它的值,0.
如果上一个不成功,就大于0,一般会接收为1,echo %errorl%,就显示了1.



注:本文中的存活/非存活主机是在简单环境下的定义,即默认防火墙关闭,所有server运行正常的情况下。


作者:hammerfall
转载请注明出自“大连IT先锋”
阅读更多

没有更多推荐了,返回首页