使用这里找到代码:https://libbits.wordpress.com/2011/05/17/check-if-ip-is-within-range-specified-in-cidr-in-java/转换4个32位整型到IP地址在java中
// Step 1. Convert IPs into ints (32 bits).
// E.g. 157.166.224.26 becomes 10011101 10100110 11100000 00011010
int addr = ((157 << 24) & 0xFF000000)
| ((166 << 16) & 0xFF0000)
| ((224 << 8) & 0xFF00)
| (26 & 0xFF);
// Step 2. Get CIDR mask
int mask = (-1) << (32 - 10);
// Step 3. Find lowest IP address
int lowest = addr & mask;
// Step 4. Find highest IP address
int highest = lowest + (~mask);
我能够将字符串分割成四个整数,创造我的IP范围边界。 现在我想能够生成介于最高值和最低值之间的IP。例如: 给出的范围:157.166.224.26/10我得到的地址是-1650008038,我最低的ip地址是-1652555776,最高的ip地址是-1648361473。现在我需要生成一个介于最低和最高之间的数字,并将其转换回四个整数,这最后一部分是我迷失的地方,我不知道如何将-1648361473转换为IP地址
也许尽一切之前,你应该二元运算和存储模型读了那么。 – haylem