Heim Backend-Entwicklung PHP-Tutorial 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 地址限制访问具有一定的局限性,使用的时候需要谨慎,但是对于应急限制访问来说,还是非常有用的。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie kann man Xiaohongshu so einstellen, dass die IP-Adresse nicht angezeigt wird? Wie ändert es die ID, um die Stadt zu lokalisieren? Wie kann man Xiaohongshu so einstellen, dass die IP-Adresse nicht angezeigt wird? Wie ändert es die ID, um die Stadt zu lokalisieren? Mar 27, 2024 pm 03:00 PM

Wie kann man Xiaohongshu so einstellen, dass die IP-Adresse nicht angezeigt wird? Wie ändert es die ID, um die Stadt zu lokalisieren?

So lösen Sie das Problem, dass die IP-Adresse von Windows 10 nach dem Festlegen nicht gespeichert werden kann So lösen Sie das Problem, dass die IP-Adresse von Windows 10 nach dem Festlegen nicht gespeichert werden kann Jul 08, 2023 pm 12:33 PM

So lösen Sie das Problem, dass die IP-Adresse von Windows 10 nach dem Festlegen nicht gespeichert werden kann

Wo ist die IP-Adresse des Xiaomi-Handys? Wo ist die IP-Adresse des Xiaomi-Handys? Feb 29, 2024 pm 06:10 PM

Wo ist die IP-Adresse des Xiaomi-Handys?

Wo kann man die IP-Adresse von Xianyu ändern_Teilen Sie, wie Sie die IP-Adresse von Xianyu ändern können Wo kann man die IP-Adresse von Xianyu ändern_Teilen Sie, wie Sie die IP-Adresse von Xianyu ändern können Mar 20, 2024 pm 05:06 PM

Wo kann man die IP-Adresse von Xianyu ändern_Teilen Sie, wie Sie die IP-Adresse von Xianyu ändern können

Wie ändere ich den Standort der Douyin-IP-Adresse? Warum ändert sich der Standort der IP-Adresse? Wie ändere ich den Standort der Douyin-IP-Adresse? Warum ändert sich der Standort der IP-Adresse? Mar 21, 2024 pm 06:30 PM

Wie ändere ich den Standort der Douyin-IP-Adresse? Warum ändert sich der Standort der IP-Adresse?

Go-Leitfaden für reguläre Ausdrücke: So passen Sie IP-Adressen an Go-Leitfaden für reguläre Ausdrücke: So passen Sie IP-Adressen an Jul 12, 2023 am 11:09 AM

Go-Leitfaden für reguläre Ausdrücke: So passen Sie IP-Adressen an

IP-Adresse der Bitcoin-Transaktion (Ist die IP-Adresse der Bitcoin-Transaktion öffentlich?) IP-Adresse der Bitcoin-Transaktion (Ist die IP-Adresse der Bitcoin-Transaktion öffentlich?) Feb 06, 2024 am 10:03 AM

IP-Adresse der Bitcoin-Transaktion (Ist die IP-Adresse der Bitcoin-Transaktion öffentlich?)

Wie verwende ich PHP-Funktionen zum Suchen und Filtern von Daten? Wie verwende ich PHP-Funktionen zum Suchen und Filtern von Daten? Jul 24, 2023 am 08:01 AM

Wie verwende ich PHP-Funktionen zum Suchen und Filtern von Daten?

See all articles