str.startWith("61.130.10.") && (Integer.parseInt(str.subString(10)) >= 61 and <= 130)

解决方案 »

  1.   

    static boolean between(String ipFrom,String ipTo,String ip){
       //这里假设都是合法的ip地址
       int from=ip2int(ipFrom);
       int to=ip2int(ipTo);
       int me=ip2int(ip);
       return (me>=from)&&(me<=to);}
    static int ip2int(String ip){
       String[] arr=ip.split("\\.");
       byte[] bs=new byte[arr.length];
       for(int i=0;i<arr.length;i++){
       bs[i]=(byte)Integer.parseInt(arr[i]);
       }
       return bytes2int(bs);
    }
    static int bytes2int(byte[] b)
    {
             int mask=0xff;
             int temp=0;
            int res=0;
            for(int i=0;i<4;i++){
                res<<=8;
                temp=b[i]&mask;
                res|=temp;
            }
           return res;
    }
      

  2.   

    ip本来就是32位整数
        public static long getIPnum(String sIP){
         String s[]=sIP.split("\\.");
         return Long.parseLong(s[0])*256*256*256+Long.parseLong(s[1])*256*256+Long.parseLong(s[2])*256+Long.parseLong(s[3]);
        }