PHP兑现IP黑白名单过滤
PHP实现IP黑白名单过滤
需求来自一个运维的同事,对一个php文件执行进行IP过滤,不方便直接配置服务器,于是需要直接在php文件开头进行IP的过滤。
IP过滤规则,可以有如下形式:
1.完整的IP地址 如:192.168.0.1
2.某一段IP 如:192.168.0.* 。
运维可以自定义IP黑白名单,由多个IP过滤规则组成,保存在数组中。通过编写代码,实现IP黑白名单功能。一个比较简单的需求。
首先实现一个函数,功能是判断ip是否符合某个ip过滤规则:
function ip_test($ip,$iprule){ $ipruleregexp=str_replace('.*','ph',$iprule); $ipruleregexp=preg_quote($ipruleregexp,'/'); $ipruleregexp=str_replace('ph','\.[0-9]{1,3}',$ipruleregexp); if(preg_match('/^'.$ipruleregexp.'$/',$ip)) return true; else return false; }
实现了ip_test这个核心函数后,下面的过程就简单多了,无非就是简单的遍历名单中的每条规则,判断当前连接的IP是否符合规则,并进行对应的步骤。
白名单,当IP至少满足一条规则时继续执行操作
$curr_ip=$_SERVER['REMOTE_ADDR']; $white_list=array(...); //白名单规则 $test_success=false; foreach($white_list as $iprule){ if(ip_test($curr_ip,$iprule)){ $test_success=true; break; } } if(!$test_success) exit('IP not in white list');
黑名单,当IP不满足所有规则时继续执行操作
$curr_ip=$_SERVER['REMOTE_ADDR']; $black_list=array(...); //黑名单规则 foreach($black_list as $iprule){ if(ip_test($curr_ip,$iprule)){ exit('IP in black list'); } }
就这样,一个简单的PHP实现的IP黑白名单过滤就完成了。这篇博客主要是给那些主业务不是开发的人员,如:技术支持、运维等。由于太简单,原本不想写,后来那个同事感谢我帮忙,对我说这个他在网上找了很久,都没有找到合适的解决方案,我就想说不定这个还真有人需要呢。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Huawei sedang melancarkan perisian versi 5.0.0.100(C00M01) untuk Watch GT 5 dan Watch GT 5 Prosmartwatches di seluruh dunia. Kedua-dua jam tangan pintar ini baru-baru ini dilancarkan di Eropah, dengan model standard tiba sebagai model termurah syarikat. Harmoni ini

Katsuhiro Harada, pengarah siri Tekken, pernah cuba membawa Kolonel Sanders ke dalam permainan pertempuran ikonik. Dalam temu bual dengan TheGamer, Harada mendedahkan bahawa dia mengemukakan idea itu kepada KFC Jepun, dengan harapan dapat menambah legenda makanan segera itu sebagai

Terdahulu pada September 2024, pengecas Zolo 140W Anker telah bocor, dan ia adalah masalah besar kerana ia merupakan pengecas dinding pertama dengan paparan daripada syarikat itu. Kini, video unboxing baharu daripada Xiao Li TV di YouTube memberi kami pandangan pertama tentang hi

Pelancaran peranti lipat 'Edisi Khas' Samsung yang telah lama ditunggu-tunggu telah mengambil satu kelainan lagi. Dalam beberapa minggu kebelakangan ini, khabar angin mengenai apa yang dipanggil Galaxy Z Fold Edisi Khas menjadi agak senyap. Sebaliknya, tumpuan telah beralih kepada siri Galaxy S25, termasuk

Xiaomi akan melancarkan Pemanas Minyak Mijia Graphene sebentar lagi di China. Syarikat itu baru-baru ini menjalankan kempen crowdfunding yang berjaya untuk produk rumah pintar, dihoskan pada platform Youpinnya. Menurut halaman tersebut, peranti telah mula dihantar ke

Garmin mengakhiri bulan ini dengan set kemas kini stabil baharu untuk jam tangan pintar mewah terbaharunya. Untuk mengimbas kembali, syarikat itu mengeluarkan Perisian Sistem 11.64 untuk memerangi kehabisan bateri yang tinggi merentasi Enduro 3, Fenix E dan Fenix 8 (sekira $1,099.99 di Amazon).

Tesla melancarkan versi Pemanduan Sendiri Penuh (Diawasi) terbaharu 12.5.5 dan dengannya disertakan pilihan Cybertruck FSD yang dijanjikan pada akhirnya, sepuluh bulan selepas pikap mula dijual dengan ciri yang disertakan dalam harga kemasan Siri Asas. F

Dengan sejarah lebih satu dekad, Manjaro dianggap sebagai salah satu distro Linux yang paling mesra pengguna yang sesuai untuk pemula dan pengguna berkuasa, kerana mudah dipasang dan digunakan. Kebanyakannya dibangunkan di Austria, Jerman dan Perancis, distro berasaskan Arch ini
