诺兰网 - 只为资源而生-分享永无止境 - 专注优质源码/电脑软件/活动资讯/技术教程分享

诺兰网投稿 1

php代码:怎么用代码判断IP地址是否内网IP

编辑:诺兰网 分类:PHP教程 首发 阅读量:90 次
扫码手机访问
1
摘要:当你的服务同时开放于公网和内网,子服务却仅允许内网访问,那么则会涉及到IP白名单的功能。但是如果名单太多或者服务进行了迁移,那么维护起来会相当的麻烦,最简单的就是判断访问的来源IP是否内网IP地址,从而直接屏蔽掉公网IP。 首先,我们认识了3类...

当你的服务同时开放于公网和内网,子服务却仅允许内网访问,那么则会涉及到IP白名单的功能。但是如果名单太多或者服务进行了迁移,那么维护起来会相当的麻烦,最简单的就是判断访问的来源IP是否内网IP地址,从而直接屏蔽掉公网IP。

首先,我们认识了3类私有地址:

A类:10.0.0.0-10.255.255.255

B类:172.16.0.0-172.31.255.255

C类:192.168.0.0-192.168.255.255

还有一个本机地址:127.0.0.1

他们就是我们平时所谓的内网IP地址。

判断IP地址是否内网IP

方法一: PHP自带函数

filter_var($IP, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)

如果$IP是内网IP则会返回false,否则返回ip字符串。

 $IP = get_client_ip(); //该方法自己实现,返回客户端的IP地址
$is_publicIP = filter_var($IP, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE);
if($is_publicIP){
echo '公网IP';
}else{
echo '内网IP';
}

方法二: 适合有网络基础的胖友阅读

关于IP地址的知识,这里就不讲太多了,下面的方法就是根据IP地址的定义和网段的划分等专业知识进行判定的。懂的就自然懂啦!

<?php
function isLocal($ip){
$long=ip2long($ip);
$data=array(
24=>'10.255.255.255',
20=>'172.31.255.255',
16=>'192.168.255.255'
);
foreach($data as $k=>$v){
if($long >> $k === ip2long($v)>>$k){
return true;
}
}
return false;
}

方法三:正则匹配

更加不用解释了。

<?php
function isLocal($ip){
return preg_match('%^127\.|10\.|192\.168|172\.(1[6-9]|2|3[01])%',$ip);
}
阅读时间:

字数统计:本文共有 996 个字

本文标题:《php代码:怎么用代码判断IP地址是否内网IP》发布于2022-10-23 13:20:40

版权声明:文章由《诺兰网》发布、原创转载请保留出处!

本文链接:https://www.nuolanyl.com/post-2140.html

上一篇
网站顶部怎么添加进度加载条代码
下一篇
学习摄影的日子,摄影爱好者

免责声明:

本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:2877741347@qq.com

同类推荐

最新文章

评论列表
签到
    Q群管家Lv.1  沙发 发表于2022-10-23 14:43 @回复
    生命从无中来,到无中去,每个人都处于“上场——谢幕”这样一个循环中。这个循环不是悲伤,不是无意义,意义就在这过程中;生命之所以有趣,就在于过程中的体验和收获。

小姐姐视频

热门文章

随机推荐

标签云

PHP教程 php代码:怎么用代码判断IP地址是否内网IP
当你的服务同时开放于公网和内网,子服务却仅允许内网访问,那么则会涉及到IP白名单的功能。但是如果名单太多或者服务进行了迁移,那么维护起来会相当的麻烦,最简单的就...
扫描二维码阅读原文
诺兰网 January, 01
生成社交图 ×