利用shell实现判断局域网内在线用户有那些

前端之家收集整理的这篇文章主要介绍了利用shell实现判断局域网内在线用户有那些前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#!/bin/bash
whiletrue;do
forIin{100..120};do
ping-c2-w2192.168.0.$I&>/dev/null
if[$?-eq0];then
echo-e"\033[32;40m192.168.0.$IisUP.\033[0m"
else
echo-e"\033[32;40m192.168.0.$IisDOWN.\033[0m"
fi
done
break
done


执行结果
[root@localhost~]#shping.sh
192.168.0.100isUP.
192.168.0.101isDOWN.
192.168.0.102isUP.
192.168.0.103isDOWN.
192.168.0.104isUP.
192.168.0.105isDOWN.
192.168.0.106isDOWN.
192.168.0.107isDOWN.
192.168.0.108isDOWN.
192.168.0.109isUP.
192.168.0.110isDOWN.
192.168.0.111isDOWN.
192.168.0.112isDOWN.
192.168.0.113isDOWN.
192.168.0.114isUP.
192.168.0.115isUP.
192.168.0.116isDOWN.
192.168.0.117isDOWN.
192.168.0.118isUP.
192.168.0.119isDOWN.
192.168.0.120isUP.


实现方案利用ping

ping 命令参数

-d使用Socket的SO_DEBUG功能
-c<完成次数>设置完成要求回应的次数
-f极限检测。
-i<间隔秒数>指定收发信息的间隔时间。
-I<网络界面>使用指定的网络界面送出数据包。
-l<前置载入>设置在送出要求信息之前,先行发出的数据包。
-n只输出数值。
-p<范本样式>设置填满数据包的范本样式。
-q不显示指令执行过程,开头和结尾的相关信息除外。
-r忽略普通的RoutingTable,直接将数据包送到远端主机上。
-R记录路由过程。
-s<数据包大小>设置数据包的大小。
-t<存活数值>设置存活数值TTL的大小。
-v详细显示指令的执行过程。

猜你在找的Bash相关文章