Java - печать случайных IP-адресов в заданном диапазоне - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь получить случайный IP-адрес из заданного диапазона.

EX: startIp = "192.168.1.0"; endIp = "192.168.2.255"

Я пытался преобразовать диапазон в cidr и получить randomIp для списка cidr, используя SubnetUtils, но безуспешно.

Есть ли эффективный способ генерации случайного ip из заданного ip-диапазона или API, который может это сделать?

Заранее спасибо.

1 Ответ

0 голосов
/ 02 сентября 2018

Вы можете достичь, выполнив следующие действия:

  1. Преобразование двух IP-адресов в числовые значения
InetAddress i= InetAddress.getByName(IPString);
int intRepresentation= ByteBuffer.wrap(i.getAddress()).getInt();
  1. Генерация случайных между пределами
r.nextInt(High-Low) + Low;
  1. Преобразовать результат обратно в числовой IP
i= InetAddress.getByName(String.valueOf(intRepresentation));
String ip= i.getHostAddress();
...