2015-02-26 13:09

[Java] ipToLong 與 longToIp

  1. public class IpToLong { 
  2.  
  3.    public static long ipToLong(String ip) { 
  4.        long result = 0; 
  5.        String[] numbers = (ip + ".0.0.0").split("\\."); 
  6.  
  7.        for (int i = 0; i < 4; i++) { 
  8.            result = result << 8; 
  9.            result |= Long.parseLong(numbers[i]) & 0xFF; 
  10.        } 
  11.  
  12.        return result; 
  13.    } 
  14.  
  15.  
  16.    public static String longToIp(long ip) { 
  17.        return (ip >> 24 & 0xFF) + "." + 
  18.               (ip >> 16 & 0xFF) + "." + 
  19.               (ip >> 8 & 0xFF) + "." + 
  20.               (ip & 0xFF); 
  21.    } 
  22.  
  23.  
  24.  
  25.    public static void main(String[] args) { 
  26.  
  27.        String[] testList = { 
  28.            "0.0.0.0", 
  29.            "255.255.255.255", 
  30.            "192.168.1.2" 
  31.        }; 
  32.  
  33.        for (String ip : testList) { 
  34.            long ipNum = ipToLong(ip); 
  35.            System.out.printf( 
  36.                "%s | %s | %s\n", ip, longToIp(ipNum), ipNum 
  37.            ); 
  38.        } 
  39.    } 
  40. } 

Output:
  1. 0.0.0.0 | 0.0.0.0 | 0 
  2. 255.255.255.255 | 255.255.255.255 | 4294967295 
  3. 192.168.1.2 | 192.168.1.2 | 3232235778 

0 回應: