java 获取范围ip内的所有ip
时间: 2023-12-06 22:44:39 浏览: 19
可以使用以下方法获取一个IP地址段内的所有IP地址:
```java
public static List<String> getIPRange(String startIP, String endIP) {
// 获取起始IP地址的数字值
long start = ipToLong(startIP);
// 获取结束IP地址的数字值
long end = ipToLong(endIP);
List<String> result = new ArrayList<>();
for (long i = start; i <= end; i++) {
result.add(longToIP(i));
}
return result;
}
/**
* 将IP地址转换为数字值
*/
public static long ipToLong(String ipAddress) {
String[] ipAddressInArray = ipAddress.split("\\.");
long result = 0;
for (int i = 0; i < ipAddressInArray.length; i++) {
int power = 3 - i;
int ip = Integer.parseInt(ipAddressInArray[i]);
result += ip * Math.pow(256, power);
}
return result;
}
/**
* 将数字值转换为IP地址
*/
public static String longToIP(long ip) {
StringBuilder result = new StringBuilder(15);
for (int i = 0; i < 4; i++) {
long val = (ip / (long) Math.pow(256, 3 - i)) % 256;
if (i > 0) {
result.append(".");
}
result.append(val);
}
return result.toString();
}
```
然后你可以调用该方法并传入起始IP地址和结束IP地址,它会返回一个包含所有IP地址的列表。