package io.fathom.cloud.compute.networks;
import java.net.Inet4Address;
import java.net.InetAddress;
public class IpV4Range extends IpRange {
public IpV4Range(InetAddress address, int netmaskLength) {
super(address, netmaskLength);
}
@Override
public boolean contains(InetAddress address) {
if (address instanceof Inet4Address) {
return super.contains(address);
} else {
return false;
}
}
// private static String getNetmaskByte(int count) {
// if (count > 8) {
// count = 8;
// }
// if (count < 0) {
// count = 0;
// }
//
// int k = 256 - (1 << (8 - count));
// return String.valueOf(k);
// }
// public static String getNetmask(int prefixLength) {
// StringBuilder sb = new StringBuilder();
// int count = prefixLength;
// sb.append(getNetmaskByte(count));
// sb.append(".");
// count -= 8;
// sb.append(getNetmaskByte(count));
// sb.append(".");
// count -= 8;
// sb.append(getNetmaskByte(count));
// sb.append(".");
// count -= 8;
// sb.append(getNetmaskByte(count));
// return sb.toString();
// }
// @Override
// public String getNetmask() {
// return getNetmask(netmaskLength);
// }
//
// // public InetAddress getFirstAddress() {
// // // The first address is usually reserved, unless we've only got a /32
// // if (netmaskLength != 32) {
// // return getAddressInRange(1);
// // } else {
// // return getAddressInRange(0);
// // }
// // }
//
// public static IpV4Range parse(String addressString, String netmask) {
// int prefixLength = -1;
//
// // TODO: This is pretty inefficient...
// for (int i = 0; i < 32; i++) {
// if (getNetmask(i).equals(netmask)) {
// prefixLength = i;
// break;
// }
// }
//
// if (prefixLength == -1) {
// throw new IllegalArgumentException("Unknown netmask: " + netmask);
// }
// InetAddress address;
// try {
// address = InetAddress.getByName(addressString);
// } catch (UnknownHostException e) {
// throw new IllegalArgumentException("Error resolving: "
// + addressString, e);
// }
//
// return new IpV4Range(address, prefixLength);
// }
}