1. 程式人生 > >利用shell實現判斷局域網內在線用戶有那些

利用shell實現判斷局域網內在線用戶有那些

利用shell實現判斷局域網內在線用戶有那些

#!/bin/bash
while true; do
  for I 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


執行結果
[[email protected] ~]# 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 詳細顯示指令的執行過程。









本文出自 “小菜鳥” 博客,請務必保留此出處http://baishuchao.blog.51cto.com/12918589/1943027

利用shell實現判斷局域網內在線用戶有那些