Prefix Length:前缀长度,mask长度,即子网掩码为1的位数。
有一些情况下会返回前缀长度,但是需要的是子网掩码,需要代码进行转换。
代码如下
String[] parts = addr.split("/");
String ip = parts[0];
int prefix;
if (parts.length < 2) {
prefix = 0;
} else {
prefix = Integer.parseInt(parts[1]);
}
int mask = 0xffffffff < < (32 - prefix);
System.out.println("Prefix=" + prefix);
System.out.println("Address=" + ip);
int value = mask;
byte[] bytes = new byte[]{
(byte)(value > > > 24), (byte)(value > > 16 & 0xff), (byte)(value > > 8 & 0xff), (byte)(value & 0xff) };
InetAddress netAddr = InetAddress.getByAddress(bytes);
System.out.println("Mask=" + netAddr.getHostAddress());