Shell腳本實(shí)現(xiàn)IP地址合法性判斷
做unix/linux下的開(kāi)發(fā),腳本編寫(xiě)的功力是少不了的,作為shell編程,也是博大精深的一個(gè)技術(shù)領(lǐng)域,這里為了學(xué)習(xí),就寫(xiě)一個(gè)簡(jiǎn)單的判斷IP地址是否合法的微型腳本程序,這個(gè)小程序也是非常有用的。
IP地址是32位的,可以由4個(gè)十進(jìn)制數(shù)值表示,每個(gè)數(shù)值的范圍都是0~255.
#!/bin/bash
# Test an IP address for validity:
# Usage:
# valid_ip IP_ADDRESS
# if [[ $? -eq 0 ]]; then echo good; else echo bad; fi
# OR
# if valid_ip IP_ADDRESS; then echo good; else echo bad; fi
#
function valid_ip()
{
local ip=$1
local stat=1
if [[ $ip =~ ^[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}$ ]]; then
OIFS=$IFS
IFS='.'
ip=($ip)
IFS=$OIFS
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 /
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
stat=$?
fi
return $stat
}
# If run directly, execute some tests.
if [[ "$(basename $0 .sh)" == 'valid_ip' ]]; then
ips='
4.2.2.2
a.b.c.d
192.168.1.1
0.0.0.0
255.255.255.255
255.255.255.256
192.168.0.1
192.168.0
1234.123.123.123
'
for ip in $ips
do
if valid_ip $ip; then stat='good'; else stat='bad'; fi
printf "%-20s: %s/n" "$ip" "$stat"
done
fi
如果你存儲(chǔ)成valid_ip.sh直接運(yùn)行就可以得到如下結(jié)果
# sh valid_ip.sh
4.2.2.2 : good
a.b.c.d : bad
192.168.1.1 : good
0.0.0.0 : good
255.255.255.255 : good
255.255.255.256 : bad
192.168.0.1 : good
192.168.0 : bad
1234.123.123.123 : bad
相關(guān)文章
shell腳本一鍵部署docker的實(shí)現(xiàn)步驟
作為一名經(jīng)驗(yàn)豐富的開(kāi)發(fā)者,我們經(jīng)常需要使用Docker來(lái)快速部署各種應(yīng)用,本文主要介紹了shell腳本一鍵部署docker的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03Linux中查看服務(wù)器內(nèi)存/CPU/網(wǎng)絡(luò)占用情況的命令
這篇文章主要為大家整理了一些Linux中查看服務(wù)器內(nèi)存、CPU和網(wǎng)絡(luò)占用情況的命令,文中的示例代碼簡(jiǎn)潔易懂,需要的小伙伴可以參考一下2023-08-08讓代碼整潔、過(guò)程清晰的BASH Shell編程技巧
這篇文章主要介紹了讓代碼整潔、過(guò)程清晰的BASH Shell編程技巧,特別是大型的Shell項(xiàng)目中,這10個(gè)經(jīng)驗(yàn)之談可以幫助你寫(xiě)出代碼整潔、過(guò)程清晰的代碼,需要的朋友可以參考下2014-07-07linux 檢測(cè)遠(yuǎn)程端口是否打開(kāi)方法總結(jié)
這篇文章主要介紹了linux 檢測(cè)遠(yuǎn)程端口是否打開(kāi)方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-04-04linux 比較兩個(gè)文件夾diff不同 (diff命令, md5列表)
這篇文章主要介紹了linux 比較兩個(gè)文件夾diff不同 (diff命令, md5列表),比較文件夾diff,可以直接使用diff命令,也可以比較文件md5列表,下面通過(guò)實(shí)例給大家介紹下,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05CentOS下mysql定時(shí)備份Shell腳本分享
這篇文章主要介紹了CentOS下mysql定時(shí)備份Shell腳本分享,本文使用的是最簡(jiǎn)單的方法,需要的朋友可以參考下2014-12-12