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 回應:
張貼留言