国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP 中檢查或過濾IP地址的實現代碼

2024-05-04 23:16:32
字體:
來源:轉載
供稿:網友
你可以通過增加一個配置文件,然后將需要禁止的一些 IP 地址通過一定規則添加到配置文件中,在程序初始化的時候,讀取配置文件中的每個規則,然后通過本文提供的方法去檢查當前訪問的客戶端 IP 地址是否存在于這些規則中,如果存在,則拒絕提供服務。

復制代碼 代碼如下:


<?php
/**
* PHP 中檢查或過濾 IP 地址
*
* 支持 IP 區間、CIDR(Classless Inter-Domain Routing)及單個 IP 格式
* 整理:
* 參考:
* - {@link #70055}
* - {@link #82397}
*
* @param string $network 網段,支持 IP 區間、CIDR及單個 IP 格式
* @param string $ip 要檢查的 IP 地址
* @return boolean
*/
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
?>


由于中國使用的大多數都是動態 IP 地址,所以通過 IP 地址限制訪問具有一定的局限性,使用的時候需要謹慎,但是對于應急限制訪問來說,還是非常有用的。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 内乡县| 重庆市| 平南县| 新河县| 新昌县| 阳朔县| 磐安县| 江津市| 韩城市| 沙洋县| 应城市| 讷河市| 辉县市| 伊川县| 互助| 吴桥县| 建德市| 遂平县| 双鸭山市| 延安市| 道真| 花莲市| 平原县| 东兴市| 湛江市| 吴旗县| 治多县| 承德市| 榆树市| 镇赉县| 宁安市| 辽阳县| 金秀| 武山县| 都安| 永康市| 来安县| 宝清县| 乐亭县| 伊金霍洛旗| 寿阳县|