java 根据多个ipv4生成范围ip
时间: 2023-10-05 16:13:44 浏览: 34
可以使用以下代码来生成多个 IPv4 范围内的 IP 地址:
```java
public static List<String> generateIPRange(String startIP, String endIP) {
List<String> ipList = new ArrayList<>();
try {
long start = ipToLong(startIP);
long end = ipToLong(endIP);
for (long i = start; i <= end; i++) {
ipList.add(longToIP(i));
}
} catch (Exception e) {
e.printStackTrace();
}
return ipList;
}
private 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;
}
private static String longToIP(long ip) {
StringBuilder sb = new StringBuilder(15);
for (int i = 0; i < 4; i++) {
sb.insert(0, Long.toString(ip & 0xff));
if (i < 3) {
sb.insert(0, '.');
}
ip >>= 8;
}
return sb.toString();
}
```
使用方式:
```java
String startIP = "192.168.0.1";
String endIP = "192.168.0.10";
List<String> ipList = generateIPRange(startIP, endIP);
System.out.println(ipList);
```
输出结果:
```
[192.168.0.1, 192.168.0.2, 192.168.0.3, 192.168.0.4, 192.168.0.5, 192.168.0.6, 192.168.0.7, 192.168.0.8, 192.168.0.9, 192.168.0.10]
```