Как генерировать случайные IP-адреса

Рассмотрите использование pam-радиуса. Это должно скомпилировать на BSD. Все способные к предприятию системы двухфакторной аутентификации поддерживают радиус. Радиус является очень стандартным стандартом, таким образом, Вы получите большую гибкость.

HTH.

0
10.06.2011, 02:01
2 ответа

Вы неправильно понимаете regex синтаксис. [16-32] не означает "соответствия 16, 17... или 32". Это означает "соответствие один символ, который равняется или 1 или 2 или в диапазоне 6-3" (который не является допустимым диапазоном, следовательно ошибка).

Возможно записать regex для соответствия диапазону целых чисел, но это сложно и подвержено ошибкам. В Вашем случае было бы намного легче использовать nmap --exclude опция исключить диапазоны Вы не хотите. Это понимает нотацию CIDR, которая является намного более простым способом описать диапазоны, о которых Вы говорите.

nmap -n -iR 0 --exclude 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,224-255.-.-.- -sL >RANDOM-IPS.txt

Вы не упоминали петлевой блок (127.0.0.0/8), но, вероятно, необходимо исключить это также.

7
28.01.2020, 02:14

Этот отрывок оболочки генерирует IP-адрес.

ip_address=$(dd if=/dev/urandom bs=4 count=1 2>/dev/null |
             od -An -tu1 |
             sed -e 's/^ *//' -e 's/  */./g')

Если Вы не довольны им, попробовали еще раз в цикле.

while
  set $(dd if=/dev/urandom bs=4 count=1 2>/dev/null | od -An -tu1)
  [ $1 -lt 224 ] &&
  [ $1 -ne 10 ] &&
  { [ $1 -ne 192 ] || [ $2 -ne 168 ]; } &&
  { [ $1 -ne 172 ] || [ $2 -lt 16 ] || [ $2 -gt 31 ]; }
do :; done
ip_address=$1.$2.$3.$4
0
28.01.2020, 02:14

Теги

Похожие вопросы