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 相关文章推荐
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
Apr 12 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
Apr 21 PHP
php图片上传类 附调用方法
May 15 PHP
php微信开发自定义菜单
Aug 27 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
php处理静态页面:页面设置缓存时间实例
Jun 22 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
PHP join()函数用法与实例讲解
Mar 11 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
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
js插件实现图片滑动验证码
2020/09/29 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
Python3匿名函数用法示例
2018/07/25 Python
python操作excel的方法
2018/08/16 Python
python ---lambda匿名函数介绍
2019/03/13 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
Keras 使用 Lambda层详解
2020/06/10 Python
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
Java如何获得ResultSet的总行数
2016/09/03 面试题
财务人员个人工作总结
2015/02/27 职场文书
医院员工辞职信范文
2015/05/12 职场文书
学校食堂管理制度
2015/08/04 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS