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出错界面
Oct 09 PHP
用PHP生成静态HTML速度快类库
Mar 18 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
PHP PDO函数库详解
Apr 27 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
Jun 09 PHP
php单例模式示例分享
Feb 12 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 PHP
php生成无限栏目树
Mar 16 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
php微信公众号开发之二级菜单
Oct 20 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
discuz的php防止sql注入函数
2011/01/17 PHP
php入门学习知识点三 PHP上传
2011/07/14 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
javascript中 try catch用法
2015/08/16 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
详解webpack+angular2开发环境搭建
2017/06/28 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python引用传值概念与用法实例小结
2017/10/07 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
档案管理员岗位职责
2013/12/01 职场文书
新学期开学寄语
2014/01/18 职场文书
心理健康活动总结
2014/04/30 职场文书
项目经理任命书内容
2014/06/06 职场文书
品质标语大全
2014/06/21 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
2022年四月新番
2022/03/15 日漫