Professional Documents
Culture Documents
client;
import java.util.ArrayList;
import java.util.List;
/**
* Specify IP address and netmask like: new
* IPv4("10.1.0.25","255.255.255.16")
*
*@param symbolicIP
*@param netmask
*/
public IPv4(String symbolicIP, String netmask) throws NumberFormatException {
/* IP */
String[] st = symbolicIP.split("\.");
if (st.length != 4)
throw new NumberFormatException("Invalid IP address: " + symbolicIP);
int i = 24;
baseIPnumeric = 0;
/* Netmask */
st = netmask.split("\.");
if (st.length != 4)
throw new NumberFormatException("Invalid netmask address: "
+ netmask);
i = 24;
netmaskNumeric = 0;
}
/*
* see if there are zeroes inside netmask, like: 1111111101111 This is
* illegal, throw exception if encountered. Netmask should always have
* only ones, then only zeroes, like: 11111111110000
*/
boolean encounteredOne = false;
int ourMaskBitPattern = 1;
/**
* Specify IP in CIDR format like: new IPv4("10.1.0.25/16");
*
*@param IPinCIDRFormat
*/
public IPv4(String IPinCIDRFormat) throws NumberFormatException {
String[] st = IPinCIDRFormat.split("\/");
if (st.length != 2)
/* IP */
st = symbolicIP.split("\.");
if (st.length != 4)
throw new NumberFormatException("Invalid IP address: " + symbolicIP);
int i = 24;
baseIPnumeric = 0;
/**
* Get the IP in symbolic form, i.e. xxx.xxx.xxx.xxx
*
*@return
*/
public String getIP() {
return convertNumericIpToSymbolic(baseIPnumeric);
}
sb.append('.');
}
sb.append(Integer.toString(ip & 0xff));
return sb.toString();
}
/**
* Get the net mask in symbolic form, i.e. xxx.xxx.xxx.xxx
*
*@return
*/
public String getNetmask() {
StringBuffer sb = new StringBuffer(15);
sb.append('.');
}
sb.append(Integer.toString(netmaskNumeric & 0xff));
return sb.toString();
}
/**
* Get the IP and netmask in CIDR form, i.e. xxx.xxx.xxx.xxx/xx
*
*@return
*/
if ((netmaskNumeric << i) == 0)
break;
}
return convertNumericIpToSymbolic(baseIPnumeric & netmaskNumeric) + "/" +
i;
}
/**
* Get an arry of all the IP addresses available for the IP and netmask/CIDR
* given at initialization
*
*@return
*/
public List<String> getAvailableIPs(Integer numberofIPs) {
String ip = convertNumericIpToSymbolic(ourIP);
result.add(ip);
}
return result;
}
/**
* Range of hosts
*
*@return
*/
public String getHostAddressRange() {
int numberOfBits;
for (numberOfBits = 0; numberOfBits < 32; numberOfBits++) {
/**
* Returns number of hosts available in given range
*
*@return number of hosts
*/
public Long getNumberOfHosts() {
int numberOfBits;
if (x == -1)
x = 1D;
return x.longValue();
}
/**
* The XOR of the netmask
*
*@return wildcard mask in text form, i.e. 0.0.15.255
*/
sb.append('.');
}
sb.append(Integer.toString(wildcardMask & 0xff));
return sb.toString();
}
if (netmaskNumeric == 0xffffffff)
return "0.0.0.0";
int numberOfBits;
for (numberOfBits = 0; numberOfBits < 32; numberOfBits++) {
String ip = convertNumericIpToSymbolic(ourIP);
return ip;
}
Integer ourMaskBitPattern = 1;
for (int i = 1; i <= 32; i++) {
}
return result;
}
return getBinary(netmaskNumeric);
}
/**
* Checks if the given IP address contains in subnet
*
*@param IPaddress
*@return
*/
public boolean contains(String IPaddress) {
Integer checkingIP = 0;
String[] st = IPaddress.split("\.");
if (st.length != 4)
throw new NumberFormatException("Invalid IP address: " + IPaddress);
int i = 24;
for (int n = 0; n < st.length; n++) {
return true;
else
return false;
}
return true;
}
}
return false;
}
if (IPAddress.startsWith("0")) {
return false;
if (IPAddress.isEmpty()) {
return false;
}
if (IPAddress
.matches("\A(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-
1]?\d?\d)){3}\z")) {
return true;
}
return false;
}
}
And here is an example of how to use the library and what you can get out of it.
System.out.println(ipv4.getCIDR());
System.out.println("======= MATCHES =======");
System.out.println(ipv4.getBinary(ipv4.baseIPnumeric));
System.out.println(ipv4.getBinary(ipv4.netmaskNumeric));
System.out.println(ipv4.contains(ipv4Child));
System.out.println(ipv4.getBinary(ipv4.baseIPnumeric));
System.out.println(ipv4.getBinary(ipv4.netmaskNumeric));
System.out.println(ipv4Child.getBinary(ipv4Child.baseIPnumeric));
System.out.println(ipv4Child.getBinary(ipv4Child.netmaskNumeric));
System.out.println(ipv4.contains(ipv4Child));