IPAddressProvider.java
package access.manage;
import lombok.SneakyThrows;
import java.net.Inet4Address;
import java.net.InetAddress;
public class IPAddressProvider {
private IPAddressProvider() {
}
@SneakyThrows
public static IPInfo getIpInfo(String ipAddress, Integer networkPrefix) {
InetAddress address = InetAddress.getByName(ipAddress);
boolean isIpv4 = address instanceof Inet4Address;
if (networkPrefix == null) {
networkPrefix = isIpv4 ? 24 : 64;
}
CIDRInstance cidrInstance = new CIDRInstance(ipAddress.concat("/").concat(networkPrefix.toString()));
int byteSize = isIpv4 ? 32 : 128;
double capacity = Math.pow(2, byteSize - networkPrefix);
return new IPInfo(cidrInstance.getNetworkAddress(), cidrInstance.getBroadcastAddress(), capacity, isIpv4, networkPrefix);
}
}