1. Bitcoin адрес для пожертвований: 1dapfB97R98wg8J3hknWpMDJ7P61CWjNn
    Скрыть объявление
  2. Участникам форума доступна Skype конференция. Присоединяйтесь!
  3. Наши основные группы и каналы: VK, Twitter. Подписывайтесь!
  4. Форум работает за счет ваших пожертвований, поэтому у нас нет внешней рекламы.
    Пожертвовать рубль на развитие форума Вы можете по ссылке.
  5. Скрыть объявление
Скрыть объявление
О том как быстро
набрать нужное
число сообщений
написано здесь
Пожертвовать рубль
на развитие
форума можно тут.

Генерация списка уникальных ipv6 адресов Способ

Тема в разделе "Linux, Freebsd, *nix", создана пользователем Insallah, 26 июн 2017.

  1. Insallah Schutzstaffel Gruppenführer Старейшина

    Репутация

    682 / 368


    Если стоит задача генерировать список ipv6 адресов из сети ipv6 /36 что бы были уникальные сети /48 можно воспользоваться скриптом:
    Код (Bash):
    1. #!/bin/bash
    2.  
    3.  
    4. array=(1234567890 a b c d e f )
    5. MAXCOUNT=4000
    6. count=1
    7. network=2a0a:7740:1# your ipv6 network prefix
    8. len=4
    9.  
    10. rnd_ip_block ()
    11. {
    12. b=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}
    13. c=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}
    14. d=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}
    15. e=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}
    16. f=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}
    17. echo $sub_network:$b:$c:$d:$e:$f
    18. }
    19.  
    20. #echo "$MAXCOUNT случайных IPv6:"
    21. #echo "-----------------"
    22. while["$count"-le $MAXCOUNT ] # Генерация 20 ($MAXCOUNT) случайных чисел.
    23. do
    24. a=`echo 'ibase=10;obase=16;'$count | bc | tr '[:upper:]' '[:lower:]'`
    25. if[ ${#a} -lt $len ]
    26. then
    27. t=$[$len-${#a}]
    28. i=1
    29. while[ $i -lt $t ];do
    30. a="0"$a
    31. let "i += 1"
    32. done
    33. fi
    34. sub_network=$network$a
    35. rnd_ip_block
    36. let "count += 1" # Нарастить счетчик.
    37. done

    Для работы скрипта может потребоваться установить пакет bc
    Код (Bash):
    1. apt install bc -y


  2. Vijin Школьник

    Репутация

    -131 / 10


    не советую использовать код этого лошары