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 相关文章推荐
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
PHP投票系统防刷票判断流程分析
Feb 04 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
May 10 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
php实现的递归提成方案实例
Nov 14 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
Apr 10 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
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
解析vue、angular深度作用选择器
2019/09/11 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
Python监控主机是否存活并以邮件报警
2015/09/22 Python
windows下python安装pip图文教程
2018/05/25 Python
使用Python监视指定目录下文件变更的方法
2018/10/15 Python
python程序封装为win32服务的方法
2021/03/07 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
Python如何实现机器人聊天
2020/09/10 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
中学生团员自我评价分享
2013/12/07 职场文书
教师年度考核评语
2014/04/28 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
nginx 配置缓存
2022/05/11 Servers