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导出oracle库的php代码
Apr 20 PHP
php skymvc 一款轻量、简单的php
Jun 28 PHP
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
php向js函数传参的几种方法
Aug 10 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
php通过session防url攻击方法
Dec 10 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP共享内存使用与信号控制实例分析
May 09 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将数据库导出成excel的方法
2010/05/07 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
学习并汇集javascript匿名函数
2010/11/25 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
vuex实现及简略解析(小结)
2019/03/01 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
Python去除字符串两端空格的方法
2015/05/21 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
opencv+python实现均值滤波
2020/02/19 Python
美国旅游网站:Tours4Fun
2017/02/17 全球购物
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
自荐信需注意事项
2014/01/25 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis