Как получить диапазон IP-адресов из нотации CIDR или пары сетевых масок адресов с помощью Java

Например:
Как получить более низкий-более высокий IP-адрес в нотации CIDR 10.66.114.0/24
В этом случае ответ:
10.66.114.1 - 10.66.114.254


person Andreas Panagiotidis    schedule 28.09.2011    source источник
comment
Дубликат stackoverflow.com/questions/2942299/   -  person bstick12    schedule 28.09.2011
comment
И ваш пример неверен. Это 10.66.114.0 - 10.66.114.255   -  person mailq    schedule 28.11.2011


Ответы (1)


Вот суть (я парень C):

unsigned int network = 0x0a427200; /* 10.66.114.0 */
unsigned int subnet_length = 24;

unsigned int mask = 0xfffffff << (32 - subnet_length);
unsigned int bcast = 0xffffffff >> (32 - subnet_length);

unsigned int start_ip = (network & mask) + 1;
unsigned int end_ip = (network & mask) + (bcast - 1);
person jman    schedule 04.10.2011