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 30 PHP
php 处理上百万条的数据库如何提高处理查询速度
Feb 08 PHP
php的POSIX 函数以及进程测试的深入分析
Jun 03 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
php采集内容中带有图片地址的远程图片并保存的方法
Jan 03 PHP
Windows7下的php环境配置教程
Feb 28 PHP
Zend Framework教程之MVC框架的Controller用法分析
Mar 07 PHP
php+mysql查询实现无限下级分类树输出示例
Oct 03 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
Sep 25 PHP
详解PHP用mb_string处理windows中文字符
May 26 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字符串截取问题
2006/11/28 PHP
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
php在线代理转向代码
2012/05/05 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
javascript中的一些注意事项 更新中
2010/12/06 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
python中文编码问题小结
2014/09/28 Python
django 自定义用户user模型的三种方法
2014/11/18 Python
详解django.contirb.auth-认证
2018/07/16 Python
Django Python 获取请求头信息Content-Range的方法
2019/08/06 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
详解python中各种文件打开模式
2020/01/19 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
Python与C/C++的相互调用案例
2021/03/04 Python
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
高中政治教学反思
2014/01/18 职场文书
网络技术专业求职信
2014/02/18 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
法律七进实施方案
2014/03/15 职场文书
抽样调查项目计划书
2014/04/24 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
高中开学感言
2015/08/01 职场文书