0

IP「127 」と入力すると、 127.0.0.1から127.255.255.255までのすべてを生成したい


IP「127.0 」を入力すると、 127.0.0.1から127.0.255.255までのすべてを生成したい


IP「127.0.0 」を入力すると、 127.0.0.1から127.0.0.255までのすべてを生成したい


netaddr の使用

4

3 に答える 3

0

力ずくのアプローチは次のとおりです。

#! /bin/bash
IFS=.
set -- $1
a=$1; b=$2; c=$3; d=$4
if [[ -z $d ]]; then
    for d in {0..255}; do
        if [[ -z $c ]]; then
            for c in {0..255}; do
                if [[ -z $b ]]; then
                    for b in {0..255}; do
                        echo $a.$b.$c.$d
                    done
                    unset b
                else
                    echo $a.$b.$c.$d
                fi
            done
            unset c
        else
            echo $a.$b.$c.$d
        fi
    done
    unset d
else
    echo $a.$b.$c.$d
fi

いくつかのテスト:

$ bash iprange.sh 127.0.0.1
127.0.0.1
$ bash iprange.sh 127.0.0 | sed -n '1,5p;$p'
127.0.0.0
127.0.0.1
127.0.0.2
127.0.0.3
127.0.0.4
127.0.0.255
$ bash iprange.sh 127.0.0 | wc
    256     256    2962
$ bash iprange.sh 127.0 | sed -n '1,5p;$p'
127.0.0.0
127.0.1.0
127.0.2.0
127.0.3.0
127.0.4.0
127.0.255.255
$ bash iprange.sh 127.0 | wc
  65536   65536  861184
于 2013-10-03T11:52:35.837 に答える