php long2ip,php 中IPV6 ip2long的问题解决办法
在32位系统,ip2long不能转换IPv6,但您可以转换ip2bin和bin2ip 这个函数转换为IPv4和IPv6,返回false,如果是无效的
实例程序
代码如下 | 复制代码 |
function ip2bin($ip) { if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false) return base_convert(ip2long($ip),10,2); if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) return false; if(($ip_n = inet_pton($ip)) === false) return false; $bits = 15; // 16 x 8 bit = 128bit (ipv6) while ($bits >= 0) { $bin = sprintf("b",(ord($ip_n[$bits]))); $ipbin = $bin.$ipbin; $bits--; } return $ipbin; } function bin2ip($bin) { if(strlen($bin) <= 32) // 32bits (ipv4) return long2ip(base_convert($bin,2,10)); if(strlen($bin) != 128) return false; $pad = 128 - strlen($bin); for ($i = 1; $i <= $pad; $i ) { $bin = "0".$bin; } $bits = 0; while ($bits <= 7) { $bin_part = substr($bin,($bits*16),16); $ipv6 .= dechex(bindec($bin_part)).":"; $bits ; } return inet_ntop(inet_pton(substr($ipv6,0,-1))); } ?> |
php long2ip,php 中IPV6 ip2long的问题解决办法相关推荐
- idea提交项目至码云(完整步骤介绍及其过程中遇到的各种问题解决办法)gitee码云创建仓库,idea新项目提交至码云完整步骤及其过程中遇到的各种问题
登录码云 创建仓库,基本操作没啥注意的!创建完成之后,点击个人中心找到仓库,复制仓库地址 接下来操作idea部分,idea导入项目成功之后 这部分操作完成之后,右键项目,点击git–add项目,然后点 ...
- 微信小程序在模板语法中使用indexOf失效问题解决办法
失效问题: 小程序的mastache语法不支持js的方法. 即在页面标签中,使用以下js方法无效: Object.keys() toString() indexOf() 解决办法-wxs: WXS(W ...
- Word中MathType公式乱码问题解决办法
Word中利用MathType输入公式有时会出现乱码问题: 解决方法如下: 1.Word中依次点击[文件]-[选项]-[高级],下拉找到[显示文档内容] 2.将[显示域代码而非域值]前面的对勾去掉,点 ...
- asp.net 中Button按钮失效问题解决办法
在asp.net页面中,有时候Button按钮会失效,根据经验,导致整个问题发生一般有两种可能性: 一.页面中添加了验证控件,对于这种情况,需要对Button及其相关联的验证控件的Validation ...
- U盘安装原版/Ghost win10系统详细教程,含重装系统中出现的各种问题解决办法(蓝屏、启动热键无效、无法识别U盘启动盘等)
U盘安装原版win10/Ghost 系统详细教程 安装Ghost版的win10系统方法有很多的人都会,可以用简单的一键重装工具装,也可以用U盘进入pe用Ghost装,但是安装原版的win10系统就可能 ...
- svn中“clean up”死循环问题解决办法
SVN在使用update命令时,提示使用"clean up "命令,在使用clean up命令时报错"Previous operation has not finishe ...
- ubuntu服务器启动过程中重启卡死的问题解决办法
在grub默认参数当中添加 GRUB_RECORDFAIL_TIMEOUT=0 转载于:https://www.cnblogs.com/zphj1987/p/3935928.html
- elasticsearch安装过程中的license问题解决办法
elasticsearch安装过程中的license问题解决办法 参考文章: (1)elasticsearch安装过程中的license问题解决办法 (2)https://www.cnblogs.co ...
- Spark SQL中出现 CROSS JOIN 问题解决
Spark SQL中出现 CROSS JOIN 问题解决 参考文章: (1)Spark SQL中出现 CROSS JOIN 问题解决 (2)https://www.cnblogs.com/yjd_hy ...
最新文章
- MFC中的字符串转换
- ubuntu下oracle数据的导入,导入oracle数据库命令行
- JVM NativeMemoryTracking 分析堆外内存泄露
- 以太坊DApp开发环境搭建
- java switch语句练习 从键盘输入2个数和一个运算符(+,-,*,/),输出运算结果
- UWP入门(二) -- 基础笔记
- 每天一记 10.01.27
- 第十天2017/04/21(2、泛型编程:模板 / 全特化、偏特化)
- 2019年备受关注的5个IT系统灾难恢复技术趋势
- 转换输入文本中的回车和空格
- 日本农商巨头50年布局多个领域 对话国际农民丰收节贸易会
- Jquery json的超强组合
- [TJOI2018]智力竞赛 (匈牙利)
- 织梦CMS AJAX分页,可自定义typeid,调取任意内容
- postgresql修炼之道_PostgreSQL的TOAST技术
- 深度学习笔记(5) 深层神经网络
- 在线字符串转列表工具
- 扫盲——敏捷开发 Agile development 之 Scrum开发
- 3、简单了解Angular应用的启动过程
- c语言程序设计总结与体会,c语言程序设计个人总结
热门文章
- C# WPF抽屉效果实现
- AWS加入.NET Foundation企业赞助商计划
- 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图...
- 也读《人月神话》:没有银弹的软件工程
- Redis作者antirez:开源维护者的挣扎
- 微软开源的Trill是什么?
- 【.NET Core项目实战-统一认证平台】第一章 功能及架构分析
- EF Core:一统SQL和NoSQL数据库
- ASP.NET Core 2.0 + EF6 + Linux +MySql混搭
- Asp.net core中Migration工具使用的交流分享