`
hdy007
  • 浏览: 29822 次
最近访客 更多访客>>
文章分类
社区版块
存档分类

关于网络上IP地址校验正则表达式的一点缺陷

阅读更多

 网络上常见的代码如下:


static boolean isIpAddress(String s){
        String regex = "(((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d)).(((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))
.(((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d)).(((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(s);
        return m.matches();
    }


经过测试,发现像“1.1.112”这样不合法的IP也可以通过校验
对0~255的校验“((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d)”,这段代码应该没问题了,问题就出在对“.”的处理上,于是,改成如下:


static boolean isIpAddress(String s){
        String regex = "(((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))[.](((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))
[.](((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))[.](((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(s);
        return m.matches();
    }


成功!!!  



分享到:
评论
2 楼 samng508 2012-04-19  
0.0.0.0也可以通过校验
1 楼 yt3929033 2010-05-04  
很好,谢谢分享

相关推荐

    IP地址的正则表达式

    IP地址的正则表达式IP地址的正则表达式

    android验证ip地址的正则表达式

    android验证ip地址的正则表达式 android验证ip地址的正则表达式

    C#使用正则表达式验证IP地址

    使用正则表达式来判断用户输入的IP地址格式是否正确

    java正则表达式验证IP地址

    java正则表达式验证IP地址

    IP地址检查正则表达式

    正则表达式 IP地址检查。面向对象web编程

    常用的表单校验正则表达式

    常用的表单校验正则表达式,txt文档,列了主要的正则表达式如:IP、电话等

    IP验证正则表达式

    IP验证正则表达式

    IP 正则表达式验证

    最后写了一个IP地址的正则表达式验证程序。 代码如下:((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d) 截图如下: 您可能感兴趣的文章:javascript 手机号码正则表达式验证函数JS正则表达式验证数字...

    正则表达式大全 - 收集的最常用正则表达式

    匹配Email地址的正则表达式 匹配网址URL的正则表达式 匹配国内电话号 匹配中国邮政编码 匹配身份证 匹配ip地址 匹配特定字符串 匹配中文字符的正则表达式 匹配双字节字符(包括汉字在内) 匹配HTML标记的正则表达式 ...

    ip-regex, 匹配IP地址的正则表达式.zip

    ip-regex, 匹配IP地址的正则表达式 ip正则表达式 匹配IP地址的正则表达式安装$ npm install ip-regex用法const ipRegex = require('ip-regex');// Contains an

    java中用正则表达式检测IP地址是否合理

    平时我们会经常遇到对IP地址的检测,检验IP地址是否合理。当然你可以通过其他程序代码去实现,这里用正则表达式去实现更为简单。

    正则表达式验证url

    正则表达式验证url 验证url不能带 页面 如www.baidu.com/3.html 可以是 ip地址

    IP限制规则正则表达式验证

    仅限于IPV4规则,IPV6规则暂没有验证。该类文件可对IP规则进行验证,及对规则进行验证。里面有相关的描述。

    正则表达式(IP和域名)

    正则表达式(IP和域名),能够匹配IP字串的正则表达式,实际尝试发现远没有自己写几行代码来判断来得容易

    常用正则表达式生成软件 学习文档

    包含自动生成常用的正则表达式,如邮件地址、网址、ip、url、数字等等 还有正则表达式的学习帮助文档,让你好好学习正则表达式 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序...

    所有常用的正则表达式

    匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 评注:表单验证时很实用 匹配网址URL的正则表达式:[a-zA-z]+://[^s]* 评注:网上流传的版本功能很有限,上面这个基本可以满足需求 匹配帐号...

    正则表达式集锦.doc

    (1)IP地址(IPv4)/IPv6地址的正则表达式 ; (2)小数的正则表达式; (3)E-mail地址的正则表达式; (4)手机号码的正则表达式; (5)域名的正则表达式; (6)固定电话的正则表达式; (7)日期的正则表达式...

    js:校验IPv6地址的正则表达式

    您可能感兴趣的文章:jquery 正整数数字校验正则表达式JavaScript正则表达式校验非零的正整数实例利用js正则表达式校验正数、负数、和小数Javascript校验密码复杂度的正则表达式最全的常用正则表达式大全——包括...

    C#中使用正则表达式验证Email格式、IP地址格式和URL网址格式

    C#中使用正则表达式验证Email格式、IP地址格式和URL网址格式

    精通正则表达式~~~

    匹配IP地址... 187 处理文件名... 190 匹配对称的括号... 193 防备不期望的匹配... 194 匹配分隔符之内的文本... 196 了解数据,做出假设... 198 去除文本首尾的空白字符... 199 HTML相关范例... 200 匹配...

Global site tag (gtag.js) - Google Analytics