Shell腳本快速查看網段內ip占用情況和可用ip


思想就是整個網段ping一遍,對於ping不通的,解析其失敗的字符來判定

#!/bin/bash
head_add=${1}
address=${head_add%.*}

echo address=$address
for i in {1..255}
do
        ping -c 2 $address.$i |grep -iq "tty" && (echo IP addr 192.168.0.$i ok;echo 192.168.0.$i >>./ok_ip) || (echo IP addr 192.168.0.$i bad;echo 192.168.0.$i >> ./bad_ip)
done

 

首先用到了字符串的截取

${expression}下面寫用到的一種方法
使用 % 號操作符。用途是從右邊開始刪除第一次出現子字符串即其右邊字符,保留左邊字符。用法為%substr*,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str%/*}
得到的結果為http://www.你的域名.com,即刪除從右邊開始到第一個"/"及其右邊所有字符

更多可以參考
https://www.cnblogs.com/onmyway20xx/p/4308113.html

接下來 ping -c 2,就是ping兩次,ping不同的話會顯示 unreach的字樣
然后grep分析是否含有目標字符串
grep -q用於if邏輯判斷很好用,如果有匹配的內容則立即返回狀態值0,否則返回非0
接下來按邏輯輸出即可,找到返回1,即輸出&&緊跟命令,否則返回||后的

{
  command
}&
這是多線程的寫法,后跟wait表示所有線程執行完畢后,繼續下面的動作
nmap命令也可用於掃描網段命令


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM