IP字符串和數字互轉

public static long ip2Long(String ipStr){
    if(ipStr == null || ipStr.length() == 0){
        return 0;
    }
    int position1 = ipStr.indexOf(".");
    int position2 = ipStr.indexOf(".",position1+1);
    int position3 = ipStr.indexOf(".",position2+1);
    long ip1 = Long.parseLong(ipStr.substring(0,position1));
    long ip2 = Long.parseLong(ipStr.substring(position1+1,position2));
    long ip3 = Long.parseLong(ipStr.substring(position2+1,position3));
    long ip4 = Long.parseLong(ipStr.substring(position3+1));
    return (ip1 << 24) + (ip2<<16) +(ip3<<8)+ip4;
}

public static String long2Ip(long ipLong){
    StringBuilder ip = new StringBuilder();
    ip.append(String.valueOf((ipLong >>> 24))).append(".");
    ip.append(String.valueOf(((ipLong & 0x00FFFFFF) >>> 16))).append(".");
    ip.append(String.valueOf(((ipLong & 0x0000FFFF) >>> 8))).append(".");
    ip.append(String.valueOf(((ipLong & 0x000000FF))));
    return ip.toString();
}

public static void main(String[] args) {
    String ipStr = "192.168.1.1";
    long ipLong = ip2Long(ipStr);
    System.out.println(ipLong);
    String ipStr2 = long2Ip(ipLong);
    System.out.println(ipStr2);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章