首頁 後端開發 php教程 PHP 中检查或过滤IP地址的实现代码_php技巧

PHP 中检查或过滤IP地址的实现代码_php技巧

May 17, 2016 am 09:14 AM
ip位址

你可以通过增加一个配置文件,然后将需要禁止的一些 IP 地址通过一定规则添加到配置文件中,在程序初始化的时候,读取配置文件中的每个规则,然后通过本文提供的方法去检查当前访问的客户端 IP 地址是否存在于这些规则中,如果存在,则拒绝提供服务。

复制代码 代码如下:

/**
* PHP 中检查或过滤 IP 地址
*
* 支持 IP 区间、CIDR(Classless Inter-Domain Routing)及单个 IP 格式
* 整理:http://www.CodeBit.cn
* 参考:
* - {@link http://us2.php.net/manual/zh/function.ip2long.php#70055}
* - {@link http://us2.php.net/manual/zh/function.ip2long.php#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 // CIDR : 174.129.0.0/16
} else if (false !== strpos($network,"/")) {
list ($net, $mask) = explode ('/', $network);
$result = (ip2long($ip) & ~((1 // 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 地址限制访问具有一定的局限性,使用的时候需要谨慎,但是对于应急限制访问来说,还是非常有用的。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

小紅書如何設定不顯示ip位址?它怎麼改id定位城市? 小紅書如何設定不顯示ip位址?它怎麼改id定位城市? Mar 27, 2024 pm 03:00 PM

小紅書如何設定不顯示ip位址?它怎麼改id定位城市?

windows10ip位址設定後無法儲存怎麼解決 windows10ip位址設定後無法儲存怎麼解決 Jul 08, 2023 pm 12:33 PM

windows10ip位址設定後無法儲存怎麼解決

小米手機ip位址在哪裡 小米手機ip位址在哪裡 Feb 29, 2024 pm 06:10 PM

小米手機ip位址在哪裡

閒魚在哪修改ip位址_閒魚ip位址修改方法分享 閒魚在哪修改ip位址_閒魚ip位址修改方法分享 Mar 20, 2024 pm 05:06 PM

閒魚在哪修改ip位址_閒魚ip位址修改方法分享

抖音IP位址怎麼變位置? IP位址變位置是什麼原因? 抖音IP位址怎麼變位置? IP位址變位置是什麼原因? Mar 21, 2024 pm 06:30 PM

抖音IP位址怎麼變位置? IP位址變位置是什麼原因?

Go語言正規表示式指南:如何匹配IP位址 Go語言正規表示式指南:如何匹配IP位址 Jul 12, 2023 am 11:09 AM

Go語言正規表示式指南:如何匹配IP位址

比特幣交易IP位址(比特幣交易IP位址公開嗎) 比特幣交易IP位址(比特幣交易IP位址公開嗎) Feb 06, 2024 am 10:03 AM

比特幣交易IP位址(比特幣交易IP位址公開嗎)

印表機的ip位址在哪裡改?修改印表機ip位址教學 印表機的ip位址在哪裡改?修改印表機ip位址教學 Mar 13, 2024 pm 10:16 PM

印表機的ip位址在哪裡改?修改印表機ip位址教學

See all articles