使用此处找到的代码:https ://libbits.wordpress.com/2011/05/17/check-if-ip-is-within-range-specified-in-cidr-in-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 地址