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实现的MySQL数据浏览器
Mar 11 PHP
java EJB 加密与解密原理的一个例子
Jan 11 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
php+ajax实现无刷新分页的方法
Nov 04 PHP
php画图实例
Nov 05 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
php实现的美国50个州选择列表实例
Apr 20 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
php json_encode与json_decode详解及实例
Dec 13 PHP
yii框架使用分页的方法分析
Jul 25 PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 06 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
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
javascript数组使用调用方法汇总
2007/12/08 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
2016/10/28 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
Pyramid添加Middleware的方法实例
2013/11/27 Python
Python元字符的用法实例解析
2018/01/17 Python
Python使用修饰器进行异常日志记录操作示例
2019/03/19 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
python多进程重复加载的解决方式
2019/12/13 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
Python代码注释规范代码实例解析
2020/08/14 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
上课迟到检讨书
2014/02/19 职场文书
人代会标语
2014/06/30 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
医院合作意向书范本
2015/05/08 职场文书
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL