package com.cattong.commons.util; public class IPUtil { private static final String IP_PATTERN = "([1-9]|[1-9]//d|1//d{2}|2[0-4]//d|25[0-5])(//.(//d|[1-9]//d|1//d{2}|2[0-4]//d|25[0-5])){3}"; public static long ip2Num(String ip) { long num = -1l; if (StringUtil.isEmpty(ip)) { return num; } if (ip.matches(IP_PATTERN)) { return num; } String[] tokens = ip.split("\\."); num = 0l; num += Long.parseLong(tokens[0]) * 16777216; num += Long.parseLong(tokens[1]) * 65536; num += Long.parseLong(tokens[2]) * 256; num += Long.parseLong(tokens[3]); return num; } public static String num2Ip(long num) { return (num >> 24 & 0xFF) + "." + ((num >> 16) & 0xFF) + "." + ((num >> 8) & 0xFF) + "." + (num & 0xFF); } }