php进行ip地址掩码运算处理的方法


Posted in PHP onJuly 11, 2016

本文实例讲述了php进行ip地址掩码运算处理的方法。分享给大家供大家参考,具体如下:

ip解析:

function ip_parse($ip_str) {
 $mark_len = 32;
 if (strpos($ip_str, "/") > 0) {
  list($ip_str, $mark_len) = explode("/", $ip_str);
 }
 $ip = ip2long($ip_str);
 $mark = 0xFFFFFFFF << (32 - $mark_len) & 0xFFFFFFFF;
 $ip_start = $ip & $mark;
 $ip_end = $ip | (~$mark) & 0xFFFFFFFF;
 return array($ip, $mark, $ip_start, $ip_end);
}
//演示:
list($ip, $mark, $ip_start, $ip_end) = ip_parse("192.168.1.12/24");
echo "IP地址 : ", long2ip($ip), "\n";
echo "子网掩码: ", long2ip($mark), "\n";
echo "IP段开始: ", long2ip($ip_start), "\n";
echo "IP段结束: ", long2ip($ip_end), "\n";

结果:

IP地址 : 192.168.1.12
子网掩码: 255.255.255.0
IP段开始: 192.168.1.0
IP段结束: 192.168.1.255

ip是否在ip分段中:

function ip_in($ip, $ip_str) {
 $mark_len = 32;
 if (strpos($ip_str, "/") > 0) {
  list($ip_str, $mark_len) = explode("/", $ip_str);
 }
 $right_len = 32 - $mark_len;
 return ip2long($ip) >> $right_len == ip2long($ip_str) >> $right_len;
}
//演示:
var_dump(ip_in("192.168.1.1", "192.168.1.0/24"));
PHP 相关文章推荐
PHP下打开URL地址的几种方法小结
May 16 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
php实现简单洗牌算法
Jun 18 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
Sep 28 PHP
PHP常用的缓存技术汇总
May 05 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
Dec 09 PHP
PHP+APACHE实现网址伪静态
Feb 22 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
May 10 PHP
PHP Swoole异步MySQL客户端实现方法示例
Oct 24 PHP
php解析xml 的四种简单方法(附实例)
Jul 11 #PHP
php进程间通讯实例分析
Jul 11 #PHP
Adnroid 微信内置浏览器清除缓存
Jul 11 #PHP
php通过两层过滤获取留言内容的方法
Jul 11 #PHP
php基于openssl的rsa加密解密示例
Jul 11 #PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 #PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 #PHP
You might like
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
javascript类型转换示例
2014/04/29 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
js判断子窗体是否关闭的方法
2015/08/11 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
Python自定义简单图轴简单实例
2018/01/08 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
简单了解python的一些位运算技巧
2019/07/13 Python
Django 请求Request的具体使用方法
2019/11/11 Python
python微信公众号开发简单流程实现
2020/03/09 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
戴尔美国官网:Dell
2016/08/31 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
delegate与普通函数的区别
2014/01/22 面试题
电脑教师的自我评价
2013/12/18 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
动画设计系毕业生求职信
2014/07/15 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
七年级上册生物的课件
2019/08/07 职场文书