package railo.commons.net; import java.net.InetAddress; import railo.commons.lang.StringUtil; import railo.runtime.op.Caster; import railo.runtime.type.util.ListUtil; public class IPUtil { public static boolean isIPv4(String ip) { String[] arr = ListUtil.trimItems(ListUtil.trim(ListUtil.listToStringArray(ip, '.'))); if(arr.length!=4) return false; int tmp; for(int i=0;i<arr.length;i++){ tmp=Caster.toIntValue(arr[i],-1); if(tmp<0 || tmp>255) return false; } return true; } public static boolean isIPv62(String ip) { if(ip.indexOf(':') == -1) return false; String[] arr = ListUtil.trimItems(ListUtil.trim(ListUtil.listToStringArray(ip, ':'))); if(arr.length!=8) return false; String str; int _int; for(int i=0;i<arr.length;i++){ str=arr[i]; if(!StringUtil.isEmpty(str)) { try{ _int=Integer.parseInt(str,16); } catch(Throwable t){t.printStackTrace(); _int=-1; } if(_int<0 || _int> 65535) return false; } } return true; } public static boolean isIPv4(InetAddress addr) { return addr.getAddress().length==4; } public static boolean isIPv6(InetAddress addr) { return !isIPv4(addr); } /*public static void main(String[] args) throws UnknownHostException { long start=System.currentTimeMillis(); print.o(isIPv4(InetAddress.getByName("localhost"))); print.o(isIPv4(InetAddress.getByName("0.0.0.0"))); print.o(isIPv4(InetAddress.getByName("127.0.0.1"))); print.o(isIPv4(InetAddress.getByName("255.255.255.255"))); print.o(isIPv6(InetAddress.getByName("0:0:0:0:0:0:0:1%0"))); print.o(System.currentTimeMillis()-start); }*/ }