php试题判断ip是否合法,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 

if(($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() 函数的介绍,可参考以下文章:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值