佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Shell腳本實(shí)現(xiàn)IP地址合法性判斷

Shell腳本實(shí)現(xiàn)IP地址合法性判斷

熱門標(biāo)簽:網(wǎng)站排名優(yōu)化 鐵路電話系統(tǒng) Linux服務(wù)器 呼叫中心市場(chǎng)需求 地方門戶網(wǎng)站 百度競(jìng)價(jià)排名 AI電銷 服務(wù)外包

做unix/linux下的開發(fā),腳本編寫的功力是少不了的,作為shell編程,也是博大精深的一個(gè)技術(shù)領(lǐng)域,這里為了學(xué)習(xí),就寫一個(gè)簡(jiǎn)單的判斷IP地址是否合法的微型腳本程序,這個(gè)小程序也是非常有用的。

IP地址是32位的,可以由4個(gè)十進(jìn)制數(shù)值表示,每個(gè)數(shù)值的范圍都是0~255.

復(fù)制代碼 代碼如下:

#!/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é)果

復(fù)制代碼 代碼如下:

# 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

標(biāo)簽:崇左 湖南 衡水 銅川 仙桃 蘭州 黃山 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell腳本實(shí)現(xiàn)IP地址合法性判斷》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    特克斯县| 高台县| 湾仔区| 平江县| 沾益县| 榆中县| 莱阳市| 双鸭山市| 同江市| 山阳县| 乐清市| 云林县| 伊春市| 思南县| 浮梁县| 榆林市| 靖江市| 怀来县| 榆树市| 定日县| 甘孜| 白城市| 龙泉市| 崇明县| 商都县| 邢台县| 屏东县| 霍城县| 伽师县| 县级市| 平武县| 辰溪县| 晋宁县| 洛宁县| 农安县| 辽源市| 龙门县| 吐鲁番市| 青岛市| 河间市| 珲春市|