`

PHP实现IP–数字互相转换

阅读更多

<?php

 

//将IP转换为数字
function ipton($ip){
    $ip_arr=explode('.',$ip);//分隔ip段
    foreach ($ip_arr as $value){
        $iphex=dechex($value);//将每段ip转换成16进制
        if(strlen($iphex)<2){//255的16进制表示是ff,所以每段ip的16进制长度不会超过2
            $iphex='0'.$iphex;//如果转换后的16进制数长度小于2,在其前面加一个0
            //没有长度为2,且第一位是0的16进制表示,这是为了在将数字转换成ip时,好处理
        }
        $ipstr.=$iphex;//将四段IP的16进制数连接起来,得到一个16进制字符串,长度为8
    }
    return hexdec($ipstr);//将16进制字符串转换成10进制,得到ip的数字表示
}
//将数字转换为IP,进行上面函数的逆向过程
function ntoip($n){
    $iphex=dechex($n);//将10进制数字转换成16进制
    $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<$len;$i=$i+1,$j=$j+2){//循环截取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值
}

echo ntoip(2942697519);

 

?>

分享到:
评论

相关推荐

    纯php实现ip或ip段转换地名或其它解释

    用于将IP地址范围转换成描述字符串,常用于IP位置查询,城市查询,ISP查询等。 纯 php 代码完成,不依赖任何扩展,采用二分查找定位IP区间,速度很快。 文本词典可兼容纯真IP数据库,提供程序脚本转换文本文件至本...

    php 版本处理类,提供版本与数字互相转换

    版本处理类,提供版本与数字互相转换,方便入库后进行比较筛选 * Func: * public version_to_integer 将版本转为数字 * public integer_to_version 将数字转为版本 * public check 检查版本格式是否正确 * ...

    PHP中IP地址与整型数字互相转换详解

    PHP语言为此提供了内置函数ip2long和long2ip来实现这种转换。但需要注意的是,在使用这些函数时,也存在一些潜在的问题,比如IP地址中带有前导零时可能会出现转换错误。 ip2long函数用于将IPv4地址转换为32位有符号...

    php 版本号 整数化 mysql存储入库 比较大小【版本处理类,提供版本与数字互相转换】

    版本处理类,提供版本与数字互相转换,方便入库后进行比较筛选 * Func: * public version_to_integer 将版本号转为数字 * public integer_to_version 将数字转为版本号 * public check 检查版本格式是否正确 * ...

    PHP利用纯真IP数据库在本地实现IP地址信息查询(无乱码)

    标题中的“PHP利用纯真IP数据库在本地实现IP地址信息查询”是指通过PHP编程语言,结合纯真IP数据库,实现在本地服务器上查询IP地址详细信息的功能。纯真IP数据库通常是中国的一个开源IP数据库,包含了丰富的IP地址段...

    纯真IP库转换工具转换为其他IP库或者TXT文本

    6. **程序接口**:IP库转换工具可能提供API接口,允许开发者在自己的程序中直接调用,实现动态更新或转换IP库,增强应用的功能。 7. **版权与更新**:纯真IP库作为一个商业产品,使用时需注意版权问题,遵循其授权...

    【PHP】根据IP地址查询省市(纯真数据库最新版)

    本文将详细讲解如何使用PHP结合“纯真数据库”来实现IP地址查询省市的功能。 首先,纯真IP数据库(Zabbix IP库)是中国大陆地区广泛使用的IP地址数据库,它提供了详细的IP地址归属地信息,包括省份、城市等。这个...

    PHP调用QQWry.Dat 实现IP归属地查询

    总结起来,PHP调用QQWry.Dat实现IP归属地查询主要涉及以下几个步骤: 1. 使用PHP的文件操作函数打开并读取QQWry.Dat文件。 2. 解析二进制数据,提取IP地址和地理位置信息。 3. 实现二分查找算法,快速定位到目标IP的...

    中文数字转换为阿拉伯数字

    标题“中文数字转换为阿拉伯数字”提示我们,这个项目或代码库的目标是实现一个功能,能够将中文数字字符串转化为等值的阿拉伯数字。这在处理中文文本,如从用户输入中提取数字或者进行自然语言处理时,是非常有用的...

    php判断IP为国内国外

    - `long2ip()`:将长整型数字转换回IP地址。 - `filter_var()`:配合`FILTER_VALIDATE_IP`可以验证IP地址的有效性,同时可以指定是否接受IPv4、IPv6或者两者。 4. **IP数据库的使用**: - 如`ipdata.db`这样的...

    PHP实现IP判断所在城市 内带QQ地址库

    本文将详细讨论如何使用PHP实现IP地址到城市的判断,并结合QQ地址库来提高定位的准确性。 首先,我们需要理解IP地址的基本概念。IP地址是Internet Protocol Address的缩写,它是一个标识互联网上设备的独特数字标签...

    PHP使用纯真数据IP库转换物理IP

    本文将详细介绍如何在PHP中利用纯真数据IP库(Zabbix)来实现IP到物理地址的转换,特别关注QQIP地址的处理。 首先,纯真IP数据库(通常称为“Zabbix”或“纯真IP库”)是一个包含大量IP地址与地理位置对应关系的...

    php 根据ip地址判断是那个国家

    本文将详细介绍如何使用PHP结合特定的库或服务,实现根据IP地址判断用户所在的国家和城市。 首先,我们需要一个IP数据库或者服务来映射IP地址到对应的地理位置。这里提到的`iplocaion.class.php`和`qqwry`可能是一...

    ip转换成国家

    这个“ip转换成国家”的话题涉及到网络编程、IP地址管理和地理位置信息处理,主要关注PHP编程语言的实现。 首先,我们需要了解IP地址的基本概念。IP地址(Internet Protocol Address)是互联网上设备的唯一标识,...

    php通过ip输出城市的代码实现

    总的来说,通过PHP实现IP到城市判断的关键步骤包括:加载IP数据库、查询数据库以及解析返回的地理位置信息。这个过程中,可能会涉及错误处理、数据转换等技术。了解并掌握这些知识点,对于进行IP相关的Web开发非常有...

    php利用GeoIP实现根据IP获取详细地址功能

    首先说明,这里是提供的一种思路,纯粹的学习研究所用,已经测试过了,根据IP来定位,基本的误差在1-2公里,主要是因为IP地址是随机分配的,不能精确,写有个小例子,大家也可以封装成自己想要的东西,所提供的是一...

    php伪造http头实现IP欺骗

    ### PHP伪造HTTP头实现IP欺骗 #### 知识点一:HTTP请求伪造 HTTP协议是互联网上应用最为广泛的一种网络协议。HTTP请求通常包括请求行、请求头、空行和请求体四部分。通过伪造HTTP请求头,可以改变请求源的表现形式...

    PHP 数组和字符串互相转换实现方法.rar

    总结来说,PHP提供多种方法来实现数组和字符串之间的转换,具体选择哪种方法取决于实际需求,如数据格式、性能考虑以及兼容性等因素。在进行转换时,务必注意数据类型之间的差异,并确保转换过程中的数据完整性。...

Global site tag (gtag.js) - Google Analytics