PHP下十六位数值转IP地址

2023-05-16


PHP函数提供的long2ip和ip2long是IP和整形数值之间的转换,没有和十六位数值的转换,所以写下这个函数。


function ntoip($iphex)
{
    $len=strlen($iphex);//得到16进制字符串的长度
    if(strlen($iphex)<8)
    {
        $iphex='0'.$iphex;//如果长度小于8,在最前面加0
        $len=strlen($iphex); //重新得到16进制字符串的长度
    }
    //这是因为ipton函数得到的16进制字符串,如果第一位为0,在转换成数字后,是不会显示的
    //所以,如果长度小于8,肯定要把第一位的0加上去
    //为什么一定是第一位的0呢,因为在ipton函数中,后面各段加的'0'都在中间,转换成数字后,不会消失
    for($i=0,$j=0;$j     {//循环截取16进制字符串,每次截取2个长度
        $ippart=substr($iphex,$j,2);//得到每段IP所对应的16进制数
        $fipart=substr($ippart,0,1);//截取16进制数的第一位
        if($fipart=='0')
        {//如果第一位为0,说明原数只有1位
            $ippart=substr($ippart,1,1);//将0截取掉
        }
        $ip[]=hexdec($ippart);//将每段16进制数转换成对应的10进制数,即IP各段的值
    }
    return implode('.', $ip);//连接各段,返回原IP值
}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9606200/viewspace-1435668/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9606200/viewspace-1435668/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP下十六位数值转IP地址 的相关文章

  • 使用 Laravel 4 验证多个文件上传

    如何在 Laravel 4 中验证上传文件的数组 我已将其设置为允许多个文件 并且已测试这些文件是否存在于 Input file files 数组中 但如何验证每个文件呢 这是我尝试过的 notesData array date gt In
  • 如何使用 PHP 正确添加跨站请求伪造 (CSRF) 令牌

    我正在尝试为我网站上的表单添加一些安全性 其中一个表单使用 AJAX 另一个表单是简单的 联系我们 表单 我正在尝试添加 CSRF 令牌 我遇到的问题是令牌有时只显示在 HTML 值 中 其余时间 该值为空 这是我在 AJAX 表单上使用的
  • 简单的 PHP 条件帮助: if($Var1 = in list($List) and $Cond2) - 这可能吗?

    这是一个可能的功能吗 我需要检查一个变量是否存在于我需要检查的变量列表中 并且 cond2 是否为 true 例如 if row name 1 2 3 Cond2 doThis 它对我不起作用 我在复制粘贴中更改的只是我的列表和变量名称 i
  • 优雅地处理没有数据的 amcharts

    我想知道我的 dataProvider 是否为空 amCharts绘制时默认为null 我怎样才能动态地处理它 var chart AmCharts makeChart chartdiv theme none type serial dat
  • 如何解压 PHP/Lumen/Laravel 的 gzip 请求?

    我收到来自第三方的 gzip 编码文本请求 1mb 所以这是有道理的 我的测试路线 router gt post testgzip function Illuminate Http Request request decompressed
  • Yii 使用 ajax 进行分页

    我需要使用ajax启用分页 我的代码 控制器 更新内容ajax function actionIndex dataProvider new CActiveDataProvider News array pagination gt array
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • 检查 PHP 中“@”字符后面的单词

    我现在正在制作一个新闻和评论系统 但是我已经在一个部分上停留了一段时间了 我希望用户能够在 Twitter 上引用其他玩家的风格 例如 用户名 该脚本看起来像这样 不是真正的 PHP 只是想象脚本 3 string I loved the
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • 如何使用 php 下载/打印页面的特定部分

    我有一个 HTML 页面如下 Lorem Ipsum is simply dummy text of the printing and typesetting industry Lorem Ipsum has been the indust
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • PHP 在输入流中使用 fwrite 和 fread

    我正在寻找将 PHP 输入流的内容写入磁盘的最有效方法 而不使用授予 PHP 脚本的大量内存 例如 如果可以上传的最大文件大小为 1 GB 但 PHP 只有 32 MB 内存 define MAX FILE LEN 1073741824 1
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • 通过 $_SESSION 从一个脚本发送到另一个脚本期间数据丢失

    我正在尝试将一个充满属性的对象从一个 PHP 发送到另一个 PHP SESSION object obj where obj是一个用 foreach 循环指定的对象 foreach array of objects as obj SESSI
  • 使用正则表达式提取两个短语之间的所有单词[重复]

    这个问题在这里已经有答案了 我正在尝试使用以下正则表达式提取两个短语之间的所有单词 b item W w W 0 2 1 one W w W 0 3 business b b item W w W 0 2 3 three W w W 0 3
  • ini_set 'session.gc_maxlifetime' 为 1 天

    If I do ini set session gc maxlifetime 86400 这是否意味着用户可以将浏览器留在同一页面 非活动状态 最多 1 天 而不必担心会话被垃圾收集并被注销 如果服务器配置不支持此功能会发生什么 它会给我一
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • Linux 内核 由block_read和block_write函数引发的设备块号转换问题的思考

    在1 2内核版本中 xff0c 在Linux fs目录下 xff0c 有一个block dev c文件 xff0c 里面主要包含了block read block write block fsync函数 先说说我遇到的问题 xff0c 在块
  • Linux 进程调度时机

    Linux调度时机主要 有 xff1a 1 进程状态转换的时刻 xff1a 进程终止 进程睡眠 2 当前进程的时间 片用完时 xff08 current gt counter 61 0 xff09 3 设备驱动程序 4 进程从中断 异常及系
  • linux 下批量转换pdf的命令方法

    由于在windows下的图形界面 xff0c 难以批量进行其他格式的文件到PDF格式文件的转换 xff0c 而一些其他的软件也不是很满意 xff0c 所以转到linux下 xff0c 想利用linux强大的命令行来完成这件事 linux下有
  • Linux内核 内存映射文件机制mmap

    今天研究Linux1 2内核运行加载a out格式的可执行文件的代码时 xff0c 无意中研究明白了内核提供的内存映射机制 mmap xff08 memory map xff09 当内核要加载可执行文件到相应的用户地址空间时 xff0c 有
  • bash提示符的配置:

    bash提示符的配置 xff1a 如果您很容易使 shell 提示行变得色彩绚烂斓且带有更多信息 xff0c 为什么还要坚持用单调的标准 shell 提示行呢 xff1f 在这篇技巧中 xff0c Daniel Robbins 将说明如何获
  • Linux线性地址空间的划分及内核寻址方式

    今天研究Linux1 2内核时 xff0c 注意到该版本中的PAGE OFFSET宏被定义为0 xff0c 考虑到进程的地址空间被划分为3G的用户态地址空间和1G的内核态地址空间 xff0c 于是深入的研究了一下这个问题 一开始我只是疑惑
  • linux 最简单的模块的编写和运行

    第一次动手编写一个内核模块 xff0c 但是查找了许多资料没有一个可以完美通过编译的 xff0c 郁闷 xff0c 最后还是解决了 xff0c 分享出来 首先是hello c include lt linux kernel h gt Nee
  • 截获或替换linux系统调用

    直接上代码吧 xff1a hello c include lt linux kernel h gt Needed by all modules include lt linux module h gt Needed for KERN inc
  • oracle临时表实际应用

    xff08 这段是后面添加的 xff1a 临时表 xff0c 在实际应用中 xff0c 其实和nologging的固定表 xff0c 是差不多的 xff0c 都是中间表 xff0c 所以这里为什么添加这段话 xff0c 是让自己记得 xff
  • linux sys_call_table 初始化

    前几天看内核中系统调用代码 xff0c 在系统调用向量表初始化中 xff0c 有下面这段代码写的让我有点摸不着头脑 xff1a const sys call ptr t sys call table NR syscall max 43 1
  • Linux gcc 利用反汇编来研究C语言函数堆栈的分配方式

    越来越感觉学习C和汇编才是最能接近计算机本质的途径 所以 xff0c 今天开始研究汇编了 xff0c 先从gcc反汇编开始 首先是下面的C代码 xff1a include lt stdio h gt int sum int a int b
  • ubuntu linux GAIM QQ

    sudo add apt repository ppa lainme pidgin lwqq sudo apt get update sudo apt get install pidgin lwqq sudo apt get install
  • Ubuntu 14.10 播放avi视频闪屏的简单解决方案

    昨天将ubuntu升级到了14 10版本 xff0c 没有得到想象中的视觉效果 但是 xff0c 后来却发现不能播放avi视频了 xff0c 尝试了各种播放器 xff0c 都无解 xff0c 总是闪屏 xff0c 而播放flv格式的视频就没
  • Ubuntu删除Compiz之后 恢复方法

    因为ubuntu14 10不能播放avi的问题纠结了很久 xff0c 最终使用转码软件解决的 但是还是不甘心啊 xff0c 总想解决这个问题或者知道问题的原因 偶然看到了系统中的compiz软件 xff0c 想到在网上看到的有人说是因为系统
  • Ubuntu14.10 unity-tweak-tool 不能正常打开的解决方法

    新的系统 xff0c 风格都变了 xff0c 折腾了一晚上 xff0c 想安装个苹果主题 xff0c 可是unity tweak tool 这个东西就是死活打不开 这么晚了 xff0c 不想多说了 xff0c 直接给解决方法吧 xff1a
  • 安装ubuntu14.04后做的一些事情

    ubuntu又折腾坏了 xff0c 于是有重新装系统了 装完之后 xff0c 美化美化 xff1a 1 本来嫌每次都sudo麻烦 xff0c 于是想将我的帐号设置为sudo不用输入密码 xff0c 但是编辑sudoer文件的时候 xff0c
  • LFS编译GCC GNU_USER_TARGET_OS_CPP_BUILTINS not declared in this scope

    gcc v 发现使用的gcc版本是4 7 安装gcc 4 4 or 4 3 xff0c 重新链接 xff0c 问题解决 apt get install gcc 4 4 g 43 43 4 4 进入 usr bin cd usr bin 建个
  • 将LFS系统通过grub装到优盘上启动

    最近在搞LFS xff0c 就是通过自己动手 xff0c 亲自编译源代码的方式 xff0c 建立自己的linux发行版 通过这个过程可以详细的深入了解linux内部的工作方式 xff0c 对理解操作系统的机制有很大的帮助 做这个项目 xff
  • kali linux 解决风扇猛转

    之前玩ubuntu的时候 xff0c 就感觉风扇猛转个不停 xff0c 之前是通过安装nvidia的闭源驱动 xff0c 然后再安装一个管理双显卡的工具解决的 xff0c 确实风扇及立马安静了下来 http www linuxidc com
  • PHP下十六位数值转IP地址

    PHP函数提供的long2ip和ip2long是IP和整形数值之间的转换 xff0c 没有和十六位数值的转换 xff0c 所以写下这个函数 function ntoip iphex len 61 strlen iphex 得到16进制字符串