desteklenen mükemmel Postgres DB işlevleri kullanılan yaptığını bir projede Ayrıca
http://commons.apache.org/proper/commons-net/download_net.cgi
Var
Hızlı bir örnek çırpındı. Bu, InetAddress
değerini bir cidr değerine dönüştürür, ayrıca InetAddress
'un geçerli bir ağ maskesi olduğunu doğrular.
Test girişi 255.255.128.0
'dir. Çıkış cidr, 17
'dur. https://stackoverflow.com/a/10090956/260633
@ psuedocode için
package com.stackoverflow._19531411;
import java.net.InetAddress;
public class NetmaskToCIDR {
public static int convertNetmaskToCIDR(InetAddress netmask){
byte[] netmaskBytes = netmask.getAddress();
int cidr = 0;
boolean zero = false;
for(byte b : netmaskBytes){
int mask = 0x80;
for(int i = 0; i < 8; i++){
int result = b & mask;
if(result == 0){
zero = true;
}else if(zero){
throw new IllegalArgumentException("Invalid netmask.");
} else {
cidr++;
}
mask >>>= 1;
}
}
return cidr;
}
public static void main(String[] args) throws Exception {
InetAddress netmask = InetAddress.getByName("255.255.128.0");
System.out.println(convertNetmaskToCIDR(netmask));
}
}
Kredi