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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash
while  true do
   for  in  {100..120}; do
     ping  -c 2 -w 2 192.168.0.$I &> /dev/null
     if  [ $? - eq  0 ]; then
       echo  -e  "\033[32;40m 192.168.0.$I is UP.\033[0m"
     else
       echo  -e  "\033[32;40m 192.168.0.$I is DOWN.\033[0m"
     fi
   done
     break
done
 
 
执行结果
[root@localhost ~] # sh ping.sh 
  192.168.0.100 is UP.
  192.168.0.101 is DOWN.
  192.168.0.102 is UP.
  192.168.0.103 is DOWN.
  192.168.0.104 is UP.
  192.168.0.105 is DOWN.
  192.168.0.106 is DOWN.
  192.168.0.107 is DOWN.
  192.168.0.108 is DOWN.
  192.168.0.109 is UP.
  192.168.0.110 is DOWN.
  192.168.0.111 is DOWN.
  192.168.0.112 is DOWN.
  192.168.0.113 is DOWN.
  192.168.0.114 is UP.
  192.168.0.115 is UP.
  192.168.0.116 is DOWN.
  192.168.0.117 is DOWN.
  192.168.0.118 is UP.
  192.168.0.119 is DOWN.
  192.168.0.120 is UP.


实现方案利用ping

ping 命令参数

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


本文转自 baishuchao 51CTO博客,原文链接:http://blog.51cto.com/baishuchao/1943027

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值