`

在PHP中如何用正则表达式验证IP地址

    博客分类:
  • PHP
 
阅读更多
 IP地址,可能都比较熟悉吧,就是由0-255间的数字,并由 . 隔开组成的。定义非常简单,而用正则表达式检验,同样也非常简单。
  下面,我们来看看正则表达式是如何表示的:
/\A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\Z/
这就是表示IP地址的正则表达式,别吓跑了。下面我们来详细说一下他是如何表示的。首先,我要说明的是开始和结尾的“/”是定界符,不代表什么,而 \A 和 \Z 分别代表开始和结尾,接下来,我们把中间的部分拆成两段,((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3},这是第一段,我们用不同的颜色标出了圆括号的对应位置。最后的{3}表示最红括号里的内容出现3次。而蓝色括号里的就是表示每一位数字的表示。\. 表示 . 号本身,也就是前三个数字后有点号。现在我们分析最关键的地方,如何表示0-255这些数字。即蓝色括号里的内容。
  这些数字可能是一位,两位或三位,我们用符号(|)来表示,当一位或两位时,请看第一个([0-9]?[0-9]) ,问号表示出现0次或1次,这就代表了0-99之间的数字。当数字为三位数时,我们又分三种情况,1-199:我们表示为(1[0-9]{2}),200-249:我们表示为(2[0-4][0-9]),250-255:我们表示为(25[0-5])。这四种能匹配任何一种,都是0-255的范围内,整个前部分的意思就是由三个0-255的数字加小数点组成。后一部分就不用说了,就是前面数字部分的复制。只表示一个数字。现在把它整理成为一个函数。以供参考:

function checkipaddres ($ipaddres) {
$preg="/\A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\Z/";
if(preg_match($preg,$ipaddres))return true;
return false;
}
分享到:
评论

相关推荐

    精通正则表达式~~~

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

    Java-PHP正则表达式的使用

     在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:  只能输入数字:“^[0-9]*$”  只能输入n位的数字:“^d{n}$”  只能输入至少n位数字:“^d{n,}$”  只能输入m-n位的数字...

    修改月光博客网站中PHP常用正则表达式中出现的错误

    看到很多朋友需要IP地址的正则表达式,网上找了一下,一开始就找到了月光博客网站模板上的找了半天没有找到完整解决IP地址的正则表达式不要紧,我随便验证了上面一个正则表达式结果不匹配,所以就自己写了一个,与...

    php使用filter过滤器验证邮箱 ipv6地址 url验证

    原来判断邮箱、url和ip地址格式是否符合都是用正则表达式。后来才知道在php中也可以使用内置的函数库filter来完成这些功能,下面分享给大家

    php使用filter_var函数判断邮箱,url,ip格式示例

    以前使用php的时候还不知道有过滤器filter这玩意,那时候判断邮箱、url和ip地址格式是否符合都是用正则表达式。后来随着使用的逐渐深入,才知道在php中也可以使用内置的函数库过滤器filter来完成这些功能。 对于...

    PHP开发实战1200例源码

    实例118 验证IP地址是否有效 149 实例119 统计关键字的查询结果 150 实例120 计算查询操作的执行时间 151 实例121 查询关键字描红 152 实例122 判断上传文件的类型 153 实例123 判断邮政编码格式是否正确 154 2.10 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例118 验证IP地址是否有效 149 实例119 统计关键字的查询结果 150 实例120 计算查询操作的执行时间 151 实例121 查询关键字描红 152 实例122 判断上传文件的类型 153 实例123 判断邮政编码格式是否正确 154 2.10 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例118 验证IP地址是否有效 149 实例119 统计关键字的查询结果 150 实例120 计算查询操作的执行时间 151 实例121 查询关键字描红 152 实例122 判断上传文件的类型 153 实例123 判断邮政编码格式是否正确 154 2.10 ...

    antispam-bee:“ ...反垃圾邮件的另一种流行解决方案是Antispam Bee” – Matt Mullenweg,Q&A WordCamp Europe 2014

    反垃圾邮件蜜蜂 反垃圾邮件插件具有完善... 验证评论者的IP地址。 使用正则表达式。 在本地垃圾邮件数据库中搜索以前标记为垃圾邮件的评论者。 通过电子邮件通知管理员有关垃圾邮件的信息。 n天后删除现有的垃圾邮件。

    PHP基础教程 是一个比较有价值的PHP新手教程!

    根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。 1.2 PHP的先进之处 应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度...

    把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数

    这几天在写一个小程序的时候,需要用到正则表达式匹配用户输入文本中的URL地址,然后将URL地址替换成可以点击的链接。URL地址的匹配,我想这应该是大家在做验证处理中常会用到的,这里就把我整合的一个比较完整的...

    JavaScript网页特效范例宝典源码

    实例088 通过正则表达式验证电话号码 137 实例089 验证输入的字符串是否为汉字 139 实例090 验证身份证号码 140 实例091 验证用户名和密码 142 实例092 验证车牌号码 144 实例093 验证网站地址 145 实例094 验证数量...

    超实用的jQuery代码段

    9.13 根据指定正则表达式识别超链接 9.14 验证Email地址的正确性 9.15 动态统计字符个数 9.16 使用jQuery验证用户年龄 9.17 按照首字母进行元素排序 9.18 获取URL地址的Hash参数 9.19 避免多行文本溢出的算法 9.20 ...

Global site tag (gtag.js) - Google Analytics