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 相关文章推荐
经典的PHPer为什么被认为是草根?
Apr 02 PHP
用php随机生成福彩双色球号码的2种方法
Feb 04 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
Apr 22 PHP
php字符串截取的简单方法
Jul 04 PHP
19个超实用的PHP代码片段
Mar 14 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
php实现三级级联下拉框
Apr 17 PHP
PHP调用Mailgun发送邮件的方法
May 04 PHP
php数值转换时间及时间转换数值用法示例
May 18 PHP
php实现socket推送技术的示例
Dec 20 PHP
php面向对象程序设计入门教程
Jun 22 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
Look And Say 序列php实现代码
2011/05/22 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
js判断日期时间有效性的方法
2015/10/24 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
2016/12/19 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
JavaScript基本类型值-Number类型
2017/02/24 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
Express之托管静态文件的方法
2018/06/01 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
javascript实现京东登录显示隐藏密码
2020/08/02 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
python类继承用法实例分析
2015/05/27 Python
python类中super()和__init__()的区别
2016/10/18 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
程序员岗位职责
2013/11/11 职场文书
创业资金计划书
2014/02/06 职场文书
村庄绿化方案
2014/05/07 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
Apache自带的ab压力测试工具的实现
2022/07/23 Servers