菜鸡源码,专注精品下载!
当前位置:首页 > 建站教程 > 建站知识

使用PHP判断IP地址是否有效

发布时间:2024-01-05  栏目:建站知识   浏览:   分类:php教程 PHP判断

要判断IP地址是否合法,可以使用正则表达式进行匹配。以下是一个PHP函数,用于检查给定的字符串是否为有效的IPv4或IPv6地址: ```php function isValidIP($ip) { return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6); } ``` 使用此函数,您可以传入一个字符串,如果该字符串是有效的IP地址,函数将返回`true`,否则返回`false`。例如: ```php $ip = "192.168.1.1"; if (isValidIP($ip)) { echo "IP地址合法"; } else { echo "IP地址不合法"; } ```

这几天菜鸡源码在开发一个API接口,为了API接口安全运行,就需要判断用户提交IP是不是真实用户,防止用户勿输入或捣乱。

下面是菜鸡源码在网上收集的几种PHP判断IP地址是否合法的方法,有正规,函数和数组的方法。

正则表达式法

<?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='192.168.0.5';//检测IP地址的函数functionis_ip($ip){$arr=explode('.',$ip);if(count($arr)!=4){returnfalse;}else{for($i=0;$i<4;$i++){if(($arr[$i]<0)||($arr[$i]>255)){returnfalse;}}}returntrue;}//函数调用var_dump(is_ip($ip));//打印结果:bool(true)?>

代码说明:

1、将IP地址转换成数组

2、如果数组的元素的个数不为4,则不是合法的IP地址

3、数组每个元素的值,如果小于0,大于255,则不是合法的IP地址

filter_var() 函数法

filter_var() 为php内置的函数,可以用它来判断一个IP地址的合法性!

例1:php判断一个IP地址是否合法

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

例2:php判断IP地址是否为IPV4的IP地址

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

例3:php判断IP地址是否为合法的IPV6地址

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

例4:php判断是否为合法的公共IPV4地址,并排除私有的IP地址

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

例5:php判断是否为公共的 IPV4 IP地址或 IPV6 IP地址

<?phpif(filter_var($ip,FILTER_VALIDATE_IP,FILTER_FLAG_NO_PRIV_RANGE|FILTER_FLAG_NO_RES_RANGE)){//true}else{//false}?>


评论
建站知识
建站知识
使用技巧
调试安装
运营推广