首頁 php教程 php手册 PHP 中检查或过滤IP地址的实现代码

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

Jun 06, 2016 pm 08:39 PM
ip位址

网络环境异常复杂,有时候我们不得不禁止一些恶意用户访问,禁止的方式有很多种,其中一种就是通过 IP 来限制,本文提供的方法允许你通过 IP 区间、CIDR (Classless Inter-Domain Routing)及单个 IP 格式来检查或过滤 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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1246
24
小紅書如何設定不顯示ip位址?它怎麼改id定位城市? 小紅書如何設定不顯示ip位址?它怎麼改id定位城市? Mar 27, 2024 pm 03:00 PM

小紅書作為一款流行的社交電商平台,用戶可以在這裡分享生活點滴、發現心儀商品。有些用戶對個人隱私較為敏感,希望在小紅書上不顯示IP位址,以保護自己的網路隱私。那麼,小紅書要如何設定不顯示IP位址呢?本文將圍繞此問題進行詳細解答。一、小紅書如何設定不顯示ip位址? 1.修改小紅書設定:開啟小紅書APP,點選右下角的“我”,進入個人中心。然後點選頭像,進入帳號設定。在帳號設定中,找到“隱私設定”,點擊進入。在這裡,你可以找到關於IP位址的設定選項,將其關閉即可。 2.清除快取:有時候,小紅書可能會顯示錯誤

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

有時大家會遇到必須手動修改ip位址的現象,但有的windows10客戶體現ip位址設定後無法儲存,像這種情況該怎麼解決呢?會有ip位址儲存基本上只因為你的ip位址填好存有錯誤,你可以檢查一下是否把子網前綴給寫出子網掩碼了,如果是的話就改回來,改完之後就可正常儲存ip位址了。 windows10ip位址設定後無法儲存怎麼解決:錯誤圖如下:填好錯誤了造成的提示“無法保存ip設置,請檢查一個或多個設定並舉試”,這裡是子網前綴長短,並非子網路掩碼,如圖所示。如上圖,其實是很多用戶把子網路前綴給寫出子網路遮罩了。

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

小米手機ip地址在哪裡?在小米手機中是可以查詢到ip地址,但是多數的用戶不知道ip地址在哪裡查詢,接下來就是小編為用戶帶來的小米手機ip地址查看方法圖文教程,有興趣用戶快來一起看看吧!小米手機ip位址在哪裡1、先開啟小米手機中的設定功能,選擇【我的裝置】點選進入;2、然後在我的裝置功能頁,點選【全部參數】服務;3、接著在全部參數頁面,滑到底部選擇【狀態資訊】;4、最後在狀態資訊介面即可看到ip位址。

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

閒魚是個很實用的二手交易平台,在這裡我們可以購買很多不同的商品,也能出售自己的閒置物品,如果想修改自己的地址怎麼操作呢?下面就來跟小編一起看看吧!閒魚ip位址修改法分享先打開閒魚軟體,進入首頁後,在左上角可以看到海鮮市場、推薦、地址等選項,點選「地址」。 2、然後在地址的頁面中我們點擊地址旁邊的【向下箭頭】;3、最後點擊過後在選擇城市的頁面中我們點擊城市即可;

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

用戶透過抖音分享生活、展示才藝,與全國乃至全球的網友互動。有些用戶出於隱私保護或地理限制等原因,希望改變自己在抖音上的IP位址。那麼,抖音IP位址怎麼變位置呢?一、抖音IP位址怎麼變位置?代理伺服器是一種用於將使用者請求轉發到網際網路並回傳回應的中介服務。透過設定代理伺服器,使用者可以隱藏其真實IP位址,實現IP位址的變更。這種方式有助於保護用戶的隱私並提高網路安全性。代理伺服器也可用於存取受限內容或繞過地理位置限制。總的來說,使用代理伺服器是一種實用的網路工具,可以幫助使用者更安全、更自由地瀏覽互聯

Python實現XML資料的過濾與篩選 Python實現XML資料的過濾與篩選 Aug 09, 2023 am 10:13 AM

Python實現XML資料的過濾和篩選XML(eXtensibleMarkupLanguage)是一種用於儲存和傳輸資料的標記語言,它具有靈活性和可擴充性,常被用於在不同系統之間進行資料交換。在處理XML資料時,我們經常需要對其進行過濾和篩選,以提取我們所需的資訊。本文將介紹如何使用Python來實現XML資料的過濾與篩選。導入所需模組在開始之前,我們

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

Go語言正規表示式指南:如何匹配IP位址導言:正規表示式是一種強大的工具,用於在字串中匹配和搜尋特定的模式。在Go語言中,可以使用內建的regexp包來實現正規表示式的操作。本文將介紹如何使用Go語言的正規表示式來符合IP位址。 IP位址格式:IP位址是由32位元二進位數組成的位址,通常以分隔的四個十進位數表示,每個十進位數取值範圍在0到255之間,例如:

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

比特幣交易IP位址比特幣交易IP位址是比特幣交易系統中不可或缺的重要組成部分。它是比特幣交易平台的核心,比特幣交易者可以透過它進行比特幣交易。比特幣交易IP位址是比特幣交易系統的基礎,也是比特幣交易者可以進行比特幣交易的基礎。比特幣交易IP位址是一個全球性的網路位址,用於定位比特幣交易系統的伺服器和交易者的設備。透過查詢比特幣交易IP位址,可以取得交易狀態和相關資訊。此外,比特幣交易IP位址還可用於連接比特幣交易系統的用戶端和交易者的裝置。比特幣交易IP位址公開嗎?比特幣交易的IP位址不會公

See all articles