【问题标题】:Bash script to show range of IP addresses用于显示 IP 地址范围的 Bash 脚本
【发布时间】:2014-07-09 16:26:26
【问题描述】:

我想编写一个 bash 脚本来获取两个 IP 地址并显示它们之间的整个范围...

我正在尝试,但不幸的是没有结果......

你能帮帮我吗?

我找到了这个但不完整:

addresses=( `< listofnums` )
network=${addresses[0]%.*}
hosts=( ${addresses[@]##*.} )

for (( i=${hosts[0]}; i<255; ++i ))
do
        case "${hosts[@]}" in *"$i"*) ;; *) echo "$network.$i" ;; esac
done

这个脚本会得到例如1.1.1.1 5.4.6.3 并在它们之间跟踪我。

【问题讨论】:

    标签: bash loops for-loop while-loop


    【解决方案1】:

    使用此答案中的函数:https://stackoverflow.com/a/3222521/116957

    然后这应该给你你想要的:

    read -p "IP1> " ip1
    read -p "IP2> " ip2
    
    ip1n=$(INET_ATON $ip1)
    ip2n=$(INET_ATON $ip2)
    
    if [[ $ip2n -lt $ip1n ]]; then
        echo "Wrong range: $ip1 - $ip2"
        exit 1;
    fi
    
    for ipn in $(seq $ip1n $ip2n)
    do
        INET_NTOA $ipn
    done
    

    【讨论】:

      猜你喜欢
      • 2016-05-07
      • 2018-01-09
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-22
      • 1970-01-01
      相关资源
      最近更新 更多