首页 后端开发 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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 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地址,以保护自己的网络隐私。那么,小红书如何设置不显示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地址的变更。这种方式有助于保护用户的隐私并提高网络安全性。代理服务器还可用于访问受限内容或绕过地理位置限制。总的来说,使用代理服务器是一种实用的网络工具,可以帮助用户更安全、更自由地浏览互联

比特币交易IP地址(比特币交易IP地址公开吗) 比特币交易IP地址(比特币交易IP地址公开吗) Feb 06, 2024 am 10:03 AM

比特币交易IP地址比特币交易IP地址是比特币交易系统中不可或缺的一个重要组成部分。它是比特币交易平台的核心,比特币交易者可以通过它进行比特币交易。比特币交易IP地址是比特币交易系统的基础,也是比特币交易者可以进行比特币交易的基础。比特币交易IP地址是一个全球性的网络地址,用于定位比特币交易系统的服务器和交易者的设备。通过查询比特币交易IP地址,可以获取交易状态和相关信息。此外,比特币交易IP地址还可用于连接比特币交易系统的客户端和交易者的设备。比特币交易IP地址公开吗?比特币交易的IP地址不会公

Go语言正则表达式指南:如何匹配IP地址 Go语言正则表达式指南:如何匹配IP地址 Jul 12, 2023 am 11:09 AM

Go语言正则表达式指南:如何匹配IP地址导言:正则表达式是一种强大的工具,用于在字符串中匹配和搜索特定的模式。在Go语言中,可以使用内置的regexp包来实现正则表达式的操作。本文将介绍如何使用Go语言的正则表达式来匹配IP地址。IP地址格式:IP地址是一个由32位二进制数组成的地址,通常用分隔的四个十进制数表示,每个十进制数取值范围在0到255之间,例如:

如何利用PHP函数进行搜索和过滤数据? 如何利用PHP函数进行搜索和过滤数据? Jul 24, 2023 am 08:01 AM

如何利用PHP函数进行搜索和过滤数据?在使用PHP进行开发的过程中,经常需要对数据进行搜索和过滤。PHP提供了丰富的函数和方法来帮助我们实现这些操作。本文将介绍一些常用的PHP函数和技巧,帮助你高效地进行数据的搜索和过滤。字符串搜索PHP中常用的字符串搜索函数是strpos()和strstr()。strpos()用于查找字符串中某个子串的位置,如果存在,则返

See all articles