这几天一直在用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
以上就是 php检测IP地址是否合法的方法。如果你是商人,你在处处为他人着想中经商,你就处处有市场。你让利给市场,市场也会把利让给你。你是一个官员,你处处为他人着想,你自然是一个老百姓喜爱拥戴的官员,也许你当不了大官,但你会成为在老百姓心中评价最高、存留时间最长的官。你是一个学者,处处为社会着想搞学问,社会能不承认你的学问吗?你肯定能成功。更多关于 php检测IP地址是否合法的方法请关注haodaima.com其它相关文章!