java ip地址轉換成int
阿新 • • 發佈:2019-02-11
// 將127.0.0.1形式的IP地址轉換成十進位制整數,這裡沒有進行任何錯誤處理 public static long ipToLong(String strIp) { long[] ip = new long[4]; // 先找到IP地址字串中.的位置 int position1 = strIp.indexOf("."); int position2 = strIp.indexOf(".", position1 + 1); int position3 = strIp.indexOf(".", position2 + 1); // 將每個.之間的字串轉換成整型 ip[0] = Long.parseLong(strIp.substring(0, position1)); ip[1] = Long.parseLong(strIp.substring(position1 + 1, position2)); ip[2] = Long.parseLong(strIp.substring(position2 + 1, position3)); ip[3] = Long.parseLong(strIp.substring(position3 + 1)); return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3]; } // 將十進位制整數形式轉換成127.0.0.1形式的ip地址 public static String longToIP(long longIp) { StringBuffer sb = new StringBuffer(""); // 直接右移24位 sb.append(String.valueOf((longIp >>> 24))); sb.append("."); // 將高8位置0,然後右移16位 sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16)); sb.append("."); // 將高16位置0,然後右移8位 sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8)); sb.append("."); // 將高24位置0 sb.append(String.valueOf((longIp & 0x000000FF))); return sb.toString(); }