天天看點

把IP位址轉化為int類型

public class IPv4Util {

public static long ipToInt(String ipAddr) {

try {

String[] ipArr = ipAddr.split("\\.");

StringBuffer sb =new StringBuffer();

for(int i=0;i<ipArr.length;i++){

int a = Integer.valueOf(ipArr[i]);

String a16 = "";

if(a<16){

a16 = String.valueOf(0)+get16(a);

}else{

a16 = get16(a);

}

sb.append(a16);

}

if(get10(sb.toString()) <= 0){

throw new IllegalArgumentException(ipAddr + " is invalid IP");

}

return get10(sb.toString());

} catch (Exception e) {

throw new IllegalArgumentException(ipAddr + " is invalid IP");

}

}

public static String get16(int x){

return Integer.toHexString(x);

}

public static long get10(String s){

Long l=Long.parseLong(s, 16);

return l;

//return Integer.parseInt(s, 16);

}

}