教你用shell指令碼在Linux上獲取外網IP地址
阿新 • • 發佈:2018-12-14
基於Linux系統的獲取外網IP地址的shell指令碼,指令碼內容如下: getIp.sh
#!/bin/bash #檢查IP的合法性 check_ipaddr() { echo $1|grep "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}$" > /dev/null; if [ $? -ne 0 ] then #echo "IP地址必須全部為數字" return 1 fi ipaddr=$1 a=`echo $ipaddr|awk -F . '{print $1}'` #以"."分隔,取出每個列的值 b=`echo $ipaddr|awk -F . '{print $2}'` c=`echo $ipaddr|awk -F . '{print $3}'` d=`echo $ipaddr|awk -F . '{print $4}'` for num in $a $b $c $d do if [ $num -gt 255 ] || [ $num -lt 0 ] #每個數值必須在0-255之間 then #echo $ipaddr "中,欄位"$num"錯誤" return 1 fi done #echo $ipaddr "地址合法" return 0 } host=ns1.dnspod.net port=16666 ip=`cat</dev/tcp/$host/$port` check_ipaddr "$ip" if [ "$?"x = "0"x ]; then echo "外網IP地址:$ip" else echo "獲取IP地址失敗!" fi
使用命令 chmod +x getIp.sh 給指令碼授權後即可執行輸出結果。