核查端口开通情况脚本

#!/bin/bash


##
#   ip_list.txt 内容格式
#   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 "测试: 源[$local_ip] 目标[${ip_item}:${port}]"
                curl $ip_item:$port -m 3
            done
        else
            echo "测试: 源[$local_ip] 目标[${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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。