Home  >  Article  >  Backend Development  >  在PHP中怎么用正则表达式验证IP地址

在PHP中怎么用正则表达式验证IP地址

WBOY
WBOYOriginal
2016-06-13 12:21:182368browse

在PHP中如何用正则表达式验证IP地址
 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;
}

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn