在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的问题解决办法相关推荐

  1. idea提交项目至码云(完整步骤介绍及其过程中遇到的各种问题解决办法)gitee码云创建仓库,idea新项目提交至码云完整步骤及其过程中遇到的各种问题

    登录码云 创建仓库,基本操作没啥注意的!创建完成之后,点击个人中心找到仓库,复制仓库地址 接下来操作idea部分,idea导入项目成功之后 这部分操作完成之后,右键项目,点击git–add项目,然后点 ...

  2. 微信小程序在模板语法中使用indexOf失效问题解决办法

    失效问题: 小程序的mastache语法不支持js的方法. 即在页面标签中,使用以下js方法无效: Object.keys() toString() indexOf() 解决办法-wxs: WXS(W ...

  3. Word中MathType公式乱码问题解决办法

    Word中利用MathType输入公式有时会出现乱码问题: 解决方法如下: 1.Word中依次点击[文件]-[选项]-[高级],下拉找到[显示文档内容] 2.将[显示域代码而非域值]前面的对勾去掉,点 ...

  4. asp.net 中Button按钮失效问题解决办法

    在asp.net页面中,有时候Button按钮会失效,根据经验,导致整个问题发生一般有两种可能性: 一.页面中添加了验证控件,对于这种情况,需要对Button及其相关联的验证控件的Validation ...

  5. U盘安装原版/Ghost win10系统详细教程,含重装系统中出现的各种问题解决办法(蓝屏、启动热键无效、无法识别U盘启动盘等)

    U盘安装原版win10/Ghost 系统详细教程 安装Ghost版的win10系统方法有很多的人都会,可以用简单的一键重装工具装,也可以用U盘进入pe用Ghost装,但是安装原版的win10系统就可能 ...

  6. svn中“clean up”死循环问题解决办法

    SVN在使用update命令时,提示使用"clean up "命令,在使用clean up命令时报错"Previous operation has not finishe ...

  7. ubuntu服务器启动过程中重启卡死的问题解决办法

    在grub默认参数当中添加 GRUB_RECORDFAIL_TIMEOUT=0 转载于:https://www.cnblogs.com/zphj1987/p/3935928.html

  8. elasticsearch安装过程中的license问题解决办法

    elasticsearch安装过程中的license问题解决办法 参考文章: (1)elasticsearch安装过程中的license问题解决办法 (2)https://www.cnblogs.co ...

  9. Spark SQL中出现 CROSS JOIN 问题解决

    Spark SQL中出现 CROSS JOIN 问题解决 参考文章: (1)Spark SQL中出现 CROSS JOIN 问题解决 (2)https://www.cnblogs.com/yjd_hy ...

最新文章

  1. MFC中的字符串转换
  2. ubuntu下oracle数据的导入,导入oracle数据库命令行
  3. JVM NativeMemoryTracking 分析堆外内存泄露
  4. 以太坊DApp开发环境搭建
  5. java switch语句练习 从键盘输入2个数和一个运算符(+,-,*,/),输出运算结果
  6. UWP入门(二) -- 基础笔记
  7. 每天一记 10.01.27
  8. 第十天2017/04/21(2、泛型编程:模板 / 全特化、偏特化)
  9. 2019年备受关注的5个IT系统灾难恢复技术趋势
  10. 转换输入文本中的回车和空格
  11. 日本农商巨头50年布局多个领域 对话国际农民丰收节贸易会
  12. Jquery json的超强组合
  13. [TJOI2018]智力竞赛 (匈牙利)
  14. 织梦CMS AJAX分页,可自定义typeid,调取任意内容
  15. postgresql修炼之道_PostgreSQL的TOAST技术
  16. 深度学习笔记(5) 深层神经网络
  17. 在线字符串转列表工具
  18. 扫盲——敏捷开发 Agile development 之 Scrum开发
  19. 3、简单了解Angular应用的启动过程
  20. c语言程序设计总结与体会,c语言程序设计个人总结

热门文章

  1. C# WPF抽屉效果实现
  2. AWS加入.NET Foundation企业赞助商计划
  3. 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图...
  4. 也读《人月神话》:没有银弹的软件工程
  5. Redis作者antirez:开源维护者的挣扎
  6. 微软开源的Trill是什么?
  7. 【.NET Core项目实战-统一认证平台】第一章 功能及架构分析
  8. EF Core:一统SQL和NoSQL数据库
  9. ASP.NET Core 2.0 + EF6 + Linux +MySql混搭
  10. Asp.net core中Migration工具使用的交流分享