这篇文章主要为大家详细介绍了PHP 检查或过滤IP地址的简单示例,具有一定的参考价值,可以用来参考一下。
对PHP 中检查或过滤IP地址的实现代码感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
<?php
/**
* PHP 中检查或过滤 IP 地址
*
* 支持 IP 区间、CIDR(Classless Inter-Domain Routing)及单个 IP 格式
*
* @param string $network 网段,支持 IP 区间、CIDR及单个 IP 格式
* @param string $ip 要检查的 IP 地址
* @return boolean
* @arrange 512-笔记网: www.q1010.com
*/
function netMatch($network, $ip) {
$network = trim($network);
$ip = trim($ip);
$result = false;
// IP range : 174.129.0.0 - 174.129.255.255
if (false !== ($pos = strpos($network, "-"))) {
$from = ip2long(trim(substr($network, 0, $pos)));
$to = ip2long(trim(substr($network, $pos+1)));
$ip = ip2long($ip);
$result = ($ip >= $from and $ip <= $to);
// CIDR : 174.129.0.0/16
} else if (false !== strpos($network,"/")) {
list ($net, $mask) = explode ('/', $network);
$result = (ip2long($ip) & ~((1 << (32 - $mask)) - 1)) == ip2long($net);
// single IP
} else {
$result = $network === $ip;
}
return $result;
}
// 174.129.0.0 - 174.129.255.255
var_dump(netMatch(' 174.129.0.0 - 174.129.255.255 ', '174.129.1.31')); // True
var_dump(netMatch(' 174.129.0.0/16 ', '174.139.1.31')); // False
var_dump(netMatch(' 174.129.1.32 ', '174.129.1.31')); // False
/*** 来自四海网(www.q1010.com) ***/
本文来自:http://www.q1010.com/173/1357-0.html
注:关于PHP 检查或过滤IP地址的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:IP地址
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。