public class IpToLong { public static long ipToLong(String ip) { long result = 0; String[] numbers = (ip + ".0.0.0").split("\\."); for (int i = 0; i < 4; i++) { result = result << 8; result |= Long.parseLong(numbers[i]) & 0xFF; } return result; } public static String longToIp(long ip) { return (ip >> 24 & 0xFF) + "." + (ip >> 16 & 0xFF) + "." + (ip >> 8 & 0xFF) + "." + (ip & 0xFF); } public static void main(String[] args) { String[] testList = { "0.0.0.0", "255.255.255.255", "192.168.1.2" }; for (String ip : testList) { long ipNum = ipToLong(ip); System.out.printf( "%s | %s | %s\n", ip, longToIp(ipNum), ipNum ); } } }
Output:
0.0.0.0 | 0.0.0.0 | 0 255.255.255.255 | 255.255.255.255 | 4294967295 192.168.1.2 | 192.168.1.2 | 3232235778
0 回應:
張貼留言