php检测IP地点是否正当的要领

这几天一直在用php做一个关于IP地点的东西大全,这个中就涉及到了一个最为要害的逻辑。就是用户在提交IP地点时,为了防备用户勿输入或捣乱,就要对提交的IP地点做一个简朴的判定。

下面提供几种操作php判定IP是否正当的要领,有正规,函数和数组的要领。

php操作正规查抄IP地点是否正当

PHP代码:

<?php //飞鸟慕鱼博客 $ip = '192.168.0.5'; //正规表达式 $regexp = "/^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1 -9]?\d))))$/"; if (preg_match($regexp, $ip)) {     echo '是正当的IP地点'; } else {     echo '不是正当的IP地点'; } ?>

注:以上php代码,只能对ipv4的IP地点举办检测,假如是IPV6的IP地点,请参考下面的几个要领。

php操作数组举办ip地点检测

PHP代码:

<?php //飞鸟慕鱼博客 $ip = '192.168.0.5'; //检测IP地点的函数 function is_ip($ip){     $arr = explode('.',$ip);     if(count($arr) != 4){         return false;     }else{         for($i = 0;$i < 4;$i++){             if(($arr[$i] < 0) || ($arr[$i] > 255)){                 return false;             }         }     }     return true; } //函数挪用 var_dump(is_ip($ip)); //打印功效:bool(true) ?>

代码说明:

1、将IP地点转换成数组

2、假如数组的元素的个数不为4,则不是正当的IP地点

3、数组每个元素的值,假如小于0,大于255,则不是正当的IP地点

php利用 filter_var() 函数判定IP地点是否正当

filter_var() 为php内置的函数,可以用它来判定一个IP地点的正当性!

例1:php判定一个IP地点是否正当

php代码:

<?php if(filter_var($ip, FILTER_VALIDATE_IP)) { // true }else { // false } ?>

例2:php判定IP地点是否为IPV4的IP地点

php代码:

<?php if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { // true }else { // false } ?>

例3:php判定IP地点是否为正当的IPV6地点

php代码:

<?php if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) { // true }else { // false } ?>

例4:php判定是否为正当的民众IPV4地点,并解除私有的IP地点

注:私有的IP地点,如

php代码:

<?php if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) { // true }else { // false } ?>

例5:php判定是否为民众的 IPV4 IP地点或 IPV6 IP地点

php代码:

<?php if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { // true }else { // false } ?>filter_var() 函数先容

本站有关于 filter_var() 函数的先容,可参考以下文章:

https://www.feiniaomy.com/post/282.html

https://www.feiniaomy.com/post/493.html

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/8923.html