CIDR
이 Sub net mask
일 때, Java lib
/function/trick을 사용하여 계산할 수 있습니까? 나는 잠시 동안 찾고있다 그리고 내가 찾을 수있는 모든 CIDR -> Netmask
에서 내가 그것을 Java
에 임이 편리하지 다른 방법 arround를 Netmask -> CIDR
을 ... 필요하지만,주어진 netmask에서 CIDR을 계산하십시오. -
PzP를) = 많이 읽어 기꺼이 메신저 thnx들 =)
CIDR
이 Sub net mask
일 때, Java lib
/function/trick을 사용하여 계산할 수 있습니까? 나는 잠시 동안 찾고있다 그리고 내가 찾을 수있는 모든 CIDR -> Netmask
에서 내가 그것을 Java
에 임이 편리하지 다른 방법 arround를 Netmask -> CIDR
을 ... 필요하지만,주어진 netmask에서 CIDR을 계산하십시오. -
PzP를) = 많이 읽어 기꺼이 메신저 thnx들 =)
되세요
빠른 예를 들어 보겠습니다. 이렇게하면 InetAddress
이 cidr 값으로 변환되고 InetAddress
이 유효한 넷 마스크임을 나타냅니다.
테스트 입력은 255.255.128.0
입니다. 출력 cidr은 17
입니다. https://stackoverflow.com/a/10090956/260633
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));
}
}
신용
Apache SubnetUtils module에 toCidrNotation
함수를 사용할 수 있습니다.
Here's a Java example.는 아파치 인터넷 항아리를 살펴 (클래스 SubnetUtils) 나는 우리가 또한 IPV6 http://www.postgresql.org/docs/8.1/static/functions-net.html
http://commons.apache.org/proper/commons-net/javadocs/api-3.3/index.html