package org.openstack.atlas.lb.helpers.ipstring; import org.openstack.atlas.lb.helpers.ipstring.exceptions.IPOctetOutOfRangeException; import org.openstack.atlas.lb.helpers.ipstring.exceptions.IPStringConversionException; import org.openstack.atlas.lb.helpers.ipstring.exceptions.IPStringException; public class IPv4Range { private long lo; private long hi; private String label; public IPv4Range() { } public IPv4Range(long lo, long hi, String label) { this.label = label; this.lo = lo; this.hi = hi; } public IPv4Range(String lo, String hi, String label) throws IPStringConversionException, IPOctetOutOfRangeException { this.label = label; this.lo = IPv4ToolSet.ip2long(lo); this.hi = IPv4ToolSet.ip2long(hi); } public long getLo() { return lo; } public void setLo(long lo) { this.lo = lo; } public long getHi() { return hi; } public void setHi(long hi) { this.hi = hi; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } @Override public String toString() { String format = "%s{lo=%s,hi=%s}"; String block; String loStr; String hiStr; block = (this.label == null) ? "null" : this.label; try { loStr = IPv4ToolSet.long2ip(this.lo); hiStr = IPv4ToolSet.long2ip(this.hi); } catch (Exception e) { loStr = "Unknown"; hiStr = "Unknown"; } return String.format(format, block, loStr, hiStr); } public boolean contains(long ipLong) { boolean out; out = this.lo <= ipLong && ipLong <= this.hi; return out; } public boolean contains(String ipStr) { long ipLong; boolean out; try { ipLong = IPv4ToolSet.ip2long(ipStr); } catch (IPStringException ex) { out = false; return out; } out = this.contains(ipLong); return out; } }