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 の使用
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 の使用
力ずくのアプローチは次のとおりです。
#! /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