核查端口開通情況腳本

#!/bin/bash


##
#   ip_list.txt 內(nèi)容格式
#   10.0.0.101-123;10.1.0.200-203 TCP 8080
#   10.2.0.100 TCP 2121
##

function check_ip_item()
{
    ip_item=$1
    local_ip=$2

    ip_item_temp=$(echo ${ip_item} | awk -F 'TCP' '{print $1 $2}')
    ips=${ip_item_temp%% *}
    port=${ip_item_temp##* }
    
    OLD_IFS=$IFS
    IFS=";"
    ips_array=($ips)
    IFS=${OLD_IFS}

    for ip in ${ips_array[@]}
    do
        if [[ ${ip} == *'-'* ]]; then
            ip_base=$(echo $ip| cut -d "." -f1-3)
            ip_range=$(echo $ip | rev | cut -d "." -f1 | rev)
            ip_min_range=${ip_range%%-*}
            ip_max_range=${ip_range##*-}
            for  ((i=$ip_min_range;i<=$ip_max_range;i++))
            do
                ip_item=$ip_base.$i
                echo "測(cè)試: 源[$local_ip] 目標(biāo)[${ip_item}:${port}]"
                curl $ip_item:$port -m 3
            done
        else
            echo "測(cè)試: 源[$local_ip] 目標(biāo)[${ip}:${port}]"
            curl $ip:$port -m 3
        fi
    done
}


local_ip=$(ip addr | grep -Po "(?<=inet )(\d+\.){3}\d+(?=/\d+ brd)")
workdir=$(cd $(dirname "${BASH_SOURCE[0]}" ) && pwd)
IFS=$'\n'
for item in $(cat ip_list.txt )
do
    check_ip_item ${item} ${local_ip}
done
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容