这篇文章主要介绍了php判断ip黑名单程序代码实例,需要的朋友可以参考下
学校的新闻系统要求有些新闻只开放校内ip浏览,于是重写了一个代码来实现此功能,实现后的结果是,只要把允许访问的ip列入ip.txt这个文件中即可,同时支持c类ip,例如:
ip.txt
192.168
211.67.188
211.67.191.25
代码如下:
代码如下:
/* * ip地址黑名单、白名单 * 判断访客地址的ip是否在ip.txt中,支持c类ip * By xhat */ $ip = $_SERVER['REMOTE_ADDR']; $ipArray = preg_replace("#rn?|n#","",file('ip.txt')); foreach ($ipArray as $ipTest) { if (substr_count($ip, $ipTest) != "0") { echo "ok"; //执行相关命令 die(); } } ?>
上面大家可以使用代码来骗过了,下面代码进行升级
代码如下:
<?php class block_ip { var $Block_ip = array("192.168.1.1","210.10.2.1-20","222.34.4.*"); function construct(){ } function destruct(){ } private function makePregIP($str){ if (strstr($str,"-")) { $aIP = explode(".",$str); foreach ($aIP as $k=>$v) { if (!strstr($v,"-")) { $preg_limit .= makePregIP($v); } else{ $aipNum = explode("-",$v); for($i=$aipNum[0];$i<=$aipNum[1];$i++){ $preg .=$preg?"|".$i:"[".$i; } $preg_limit .=strrpos($preg_limit,".",1)==(strlen($preg_limit)-1)?$preg."]":".".$preg."]"; } } }else{ $preg_limit .= $str."."; } return $preg_limit; } private function getAllBlockIP(){ if ($this->Block_ip) { foreach ($this->Block_ip as $k=>$v) { $ipaddres = $this->makePregIP($v->start_ip); $ip = str_ireplace(".",".",$ipaddres); $ip = str_replace("*","[0-9]{1,3}",$ip); $ipaddres = "/".$ip."/"; $ip_list[] = $ipaddres; } } return $ip_list; } public function checkIP() { $iptable = $this->getAllBlockIP(); $IsJoined = true; //取得用户ip $Ip = $this->get_client_ip(); $Ip = trim($Ip); //剔除黑名单中的IP区段 if ($iptable) { foreach($iptable as $value) { if (preg_match("{$value}",$Ip)) { $IsJoined = false; break; } } } // 如果在ip黑名单中就执行如下操作 if( !$IsJoined ){ echo "IP Error"; exit; } } private function get_client_ip(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown"; return($ip); } } ?>
引用片段:
代码如下:
$oBlock_ip = new block_ip(); $oBlock_ip->checkIP();
Atas ialah kandungan terperinci php判断ip黑名单程序代码实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Tutorial ini memperincikan bagaimana untuk memanfaatkan sambungan curl dalam PHP untuk berinteraksi dengan API Dropbox untuk menyenaraikan fail dan subfolder di bawah folder yang ditentukan. Artikel ini memberi tumpuan kepada menjelaskan cara membina dan menghantar badan permintaan JSON dengan betul ke antara muka fail/list_folder untuk mengelakkan kesilapan "kegagalan penyahkodan JSON" biasa. Ia juga menyediakan contoh kod PHP yang lengkap, meliputi panggilan API, pengendalian ralat dan langkah berjaga -jaga utama untuk membantu pemaju mengintegrasikan fungsi pengurusan fail Dropbox dengan cekap.

Artikel ini bertujuan untuk menyelesaikan masalah masa tamat sambungan biasa apabila PHP menyambung ke pelayan mel melalui fungsi imap_open, terutamanya untuk penyedia perkhidmatan seperti AOL. Kandungan teras memberi tumpuan kepada dengan betul mengkonfigurasi alamat pelayan IMAP, protokol port dan penyulitan (seperti SSL/TLS), dan menekankan pentingnya menggunakan kata laluan khusus aplikasi untuk memastikan sambungan e-mel yang stabil dan selamat.

Tutorial ini terperinci bagaimana untuk mengekstrak dan menyatukan nilai medan tertentu dari pelbagai multidimensi ke dalam array satu dimensi yang baru, rata-rata di PHP. Kami akan meneroka dua pendekatan utama: Menggunakan gelung foreach untuk pemprosesan berulang, dan memanfaatkan fungsi array_column terbina dalam PHP untuk pengekstrakan yang cekap. Melalui contoh kod tertentu, ia membantu pembaca memahami dan menguasai kemahiran operasi array praktikal ini.

Artikel ini bertujuan untuk menyelesaikan masalah bagaimana untuk mengekstrak nilai -nilai kunci tertentu dari pelbagai tatasusunan dan menggabungkan nilai -nilai ini ke dalam array baru. Melalui kod sampel, ia menerangkan secara terperinci bagaimana menggunakan fungsi Operasi Loop dan Array PHP untuk mencapai matlamat ini dengan cekap. Akhirnya, kami akan mendapatkan array yang mengandungi semua nilai sasaran untuk memudahkan pemprosesan dan analisis data berikutnya.

Butir tutorial ini bagaimana menggunakan jQuery untuk mengenal pasti dan mengekstrak teks label yang berkaitan dengan tepat untuk semua kotak semak yang tidak terkawal pada halaman. Dengan menggabungkan: tidak (: diperiksa) pemilih dan kaedah DOM Traversal Seterusnya ('Label'), kami akan belajar bagaimana untuk mengumpul teks label ini ke dalam array, meletakkan asas untuk penyerahan bentuk atau pemprosesan data berikutnya, memastikan ketepatan dan kesempurnaan data.

Artikel ini mengambil pandangan yang mendalam pada httpException biasa: 400 tidak dapat mengesahkan kesilapan penyerahan data anda dalam rangka kerja YII2, yang biasanya berpunca daripada kegagalan pengesahan token CSRF. Artikel ini menganalisis punca utama masalah - Generasi token CSRF dalam permintaan Ajax tidak konsisten dengan halaman yang diberikan token, dan memberikan penyelesaian yang jelas: dengan mendapatkan token dari tag meta yang ada, pastikan token yang dikemukakan oleh permintaan yang dijangkakan oleh pihak yang dijangkakan.

Artikel ini bertujuan untuk membimbing pemaju tentang cara melaksanakan pengesahan pengguna multi-meja di API Laravel 8 dan menyelesaikan masalah yang dilakukan oleh Lalai :: Percubaan hanya dapat mengesahkan pengguna dari jadual pengguna. Menggunakan pengawal pengesahan tersuai dan penyedia pengguna, kami akan menunjukkan cara mengkonfigurasi Laravel untuk mengesahkan pelbagai jenis pengguna dari pelbagai jadual, seperti pelajar dan guru.

Butir tutorial ini bagaimana untuk mengendalikan data kompleks dalam format JSON dalam PHP. Tukar rentetan JSON ke dalam array PHP melalui JSON_DECODE, kemudian menunjukkan cara untuk mengumpulkan data dengan cekap mengikut kunci tertentu (seperti "kategori"), dan akhirnya memaparkan data yang dikumpulkan dalam bentuk HTML berstruktur melalui gelung bersarang untuk memastikan bahawa pautan dan tajuk artikel di bawah setiap kategori dapat dibentangkan dengan betul.


Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Dreamweaver CS6
Alat pembangunan web visual

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini
