forked from KNEMC/KLALB
68 lines
2.1 KiB
Java
68 lines
2.1 KiB
Java
package org.kne.cloud.network.scanner;
|
|
|
|
import java.io.Serializable;
|
|
import java.net.UnknownHostException;
|
|
import java.util.Objects;
|
|
|
|
import org.kne.cloud.network.MultiProtocolSocketAddress;
|
|
|
|
public class ScanRange implements Serializable {
|
|
public ScanRange(String range) throws UnknownHostException {
|
|
setMsaString(range);
|
|
}
|
|
protected void setMsaString(String range) throws UnknownHostException {
|
|
String[]sp=range.split("~");
|
|
MultiProtocolSocketAddress begin=new MultiProtocolSocketAddress(sp[0]);
|
|
MultiProtocolSocketAddress end;
|
|
if(sp.length>1) {
|
|
end=new MultiProtocolSocketAddress(sp[1]);
|
|
}else {
|
|
end=new MultiProtocolSocketAddress(sp[0]);
|
|
}
|
|
setMsa(begin, end);
|
|
}
|
|
public ScanRange(MultiProtocolSocketAddress begin, MultiProtocolSocketAddress end) throws UnknownHostException {
|
|
setMsa(begin,end);
|
|
|
|
}
|
|
|
|
protected void setMsa(MultiProtocolSocketAddress begin, MultiProtocolSocketAddress end) throws UnknownHostException {
|
|
this.addressRange=new InetAddressRange(begin.getHost(), end.getHost());
|
|
this.portRange=new PortRange(begin.getPort(), end.getPort());
|
|
}
|
|
public ScanRange(InetAddressRange addressRange, PortRange portRange) {
|
|
super();
|
|
this.addressRange = addressRange;
|
|
this.portRange = portRange;
|
|
}
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
protected InetAddressRange addressRange;
|
|
protected PortRange portRange;
|
|
public InetAddressRange getAddressRange() {
|
|
return addressRange;
|
|
}
|
|
public PortRange getPortRange() {
|
|
return portRange;
|
|
}
|
|
|
|
public String toString() {
|
|
return new MultiProtocolSocketAddress(addressRange.getBeginHost(), portRange.getBegin())+"~"+new MultiProtocolSocketAddress(addressRange.getEndHost(), portRange.getEnd());
|
|
}
|
|
@Override
|
|
public int hashCode() {
|
|
return Objects.hash(addressRange, portRange);
|
|
}
|
|
@Override
|
|
public boolean equals(Object obj) {
|
|
if (this == obj)
|
|
return true;
|
|
if (obj == null)
|
|
return false;
|
|
if (getClass() != obj.getClass())
|
|
return false;
|
|
ScanRange other = (ScanRange) obj;
|
|
return Objects.equals(addressRange, other.addressRange) && Objects.equals(portRange, other.portRange);
|
|
}
|
|
}
|