比如现在有ip在192.168.1.1-192.168.10之间有什么好方法能快速确定ip在上面的范围内
每秒有好几百的访问,方法越快越好!

解决方案 »

  1.   

    public static void main(String [] args){ 
    String pattern = "192.168.([1-9]|10).(2[0-4]\\d|25[0-5]|[1]?\\d\\d?)"; 
                String value = "192.168.8.05234" ;            Pattern p = Pattern.compile(pattern); 
                Matcher m = p.matcher(value); 
                if(m.find())
                 System.out.println(value); }这个测试对前面三段的验证没问题,但是对第四段的合法性验证好像有问题。
      

  2.   

    这是我实现的
    我想判断ip是不是北京的ip我数据库表有1万多条数据都表示ip ip是varchar2
                                  格式如:193.178.123.33-197.168.2.6 数据是不对的,只是打个比方
    用数据库访问肯定 不行
      

  3.   

    那为什么不在查询时候用sql判断呢?数据库是什么?如果是oracle的话查询时直接在条件上加正则表达式。regex_like
      

  4.   

    这个不能用regex,个人感觉需要把ip地址转换然后判断
      

  5.   

    SELECT '192.168.1.9' REGEXP '^(192.168.1.([1-9]|10){1})$'; mysql中可以!!
      

  6.   

    将IP转换成数字也是一个方法。不知道大量的数字转换和regexp相比怎么样