Генерация списка уникальных ipv6 адресов
Если стоит задача генерировать список ipv6 адресов из сети ipv6 /36 что бы были уникальные сети /48 можно воспользоваться скриптом:
Для работы скрипта может потребоваться установить пакет bc
#!/bin/bash
array=( 1 2 3 4 5 6 7 8 9 0 a b c d e f )
MAXCOUNT=4000
count=1
network=2a0a:7740:1 # your ipv6 network prefix
len=4
rnd_ip_block ()
{
b=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}
c=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}
d=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}
e=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}
f=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}
echo $sub_network:$b:$c:$d:$e:$f
}
#echo "$MAXCOUNT случайных IPv6:"
#echo "-----------------"
while [ "$count" -le $MAXCOUNT ] # Генерация 20 ($MAXCOUNT) случайных чисел.
do
a=`echo 'ibase=10;obase=16;'$count | bc | tr '[:upper:]' '[:lower:]'`
if [ ${#a} -lt $len ]
then
t=$[$len-${#a}]
i=1
while [ $i -lt $t ]; do
a="0"$a
let "i += 1"
done
fi
sub_network=$network$a
rnd_ip_block
let "count += 1" # Нарастить счетчик.
done
Для работы скрипта может потребоваться установить пакет bc
apt install bc -y
- 0
- 10 апреля 2017, 16:13
- GreatAlex
Комментарии (0)
RSS свернуть / развернуть