千家信息网

php如何实现ip转整数

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"php如何实现ip转整数",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"php如何实现ip转整数"吧!php实现ip转整数的方法:1
千家信息网最后更新 2026年10月31日php如何实现ip转整数

这篇文章主要讲解了"php如何实现ip转整数",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"php如何实现ip转整数"吧!

php实现ip转整数的方法:1、创建一个PHP示例文件;2、通过"ip2long($ip);"方法将ip地址转换整型即可。

本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑

php怎么实现ip转整数 ?

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

这篇文章主要介绍了PHP中IP地址与整型数字互相转换详解,本文介绍了使用PHP函数ip2long与long2ip的使用,以及它们的BUG介绍,最后给出自己写的两个算法,需要的朋友可以参考下

IP转换成整型存储是数据库优化一大趋势,不少人目前存储IP时还在使用字符串类型存储,字符串索引比整型索引消耗资源很多,特别是表中数据量大的时候,以及求查询某一个ip段的数据,今天说的ip是指ip4,ip6不在本文范围内。

系统函数ip2long与long2ip
PHP中有内置函数ip2long可以将ip地址转换整型。

代码如下:

$ip = '210.110.11.49';echo ip2long($ip);

输出:

-764540111

输出的整型有负号是因为我们得到的结果是有符号整型,有符号整型最大值2147483647,要把结果转换为无符号型可以这么写

3530427185

使用long2ip把整型转换回ip地址

$ip = '210.110.11.49';$ip_int = ip2long($ip);echo $ip."
";echo $ip_int."
";echo long2ip($ip_int);

输出:

210.110.011.49-764540623210.110.9.49

转换结果不匹配,我们试着在ip第一段数字前加前导0,再看看

$ip = '021.110.11.49';$ip_int = ip2long($ip);echo $ip."
";echo $ip_int."
";echo long2ip($ip_int);

输出:

021.110.11.4929242449717.110.11.49

转换结果都出错。以上例子都是因为加了前导0后导致转换结果出错,连带逆转结果与原转换ip不匹配。

转换原理

目前有两个算法:
第一、第一段乘以256的三次方,第二段乘以256的平方,第三段乘以256、最后总和

$ip = '0210.110.11.49'; function ipToInt($ip){    $iparr = explode('.',$ip);    $num = 0;    for($i=0;$i';$ip_int = ipToInt($ip);echo $ip_int.'
';echo long2ip($ip_int);

输出:

0210.110.11.493530427185210.110.11.49

第二、通过位运算符

$ip = '0210.110.11.49'; function ipToInt($ip){    $iparr = explode('.',$ip);    return (intval($iparr[0]<<24))|(intval($iparr[1])<<16)|(intval($iparr[2])<<8)| (intval($iparr[3]));} echo  $ip.'
';$ip_int = ipToInt($ip);echo $ip_int.'
';echo long2ip($ip_int);

输出:

0210.110.11.49-764540111210.110.11.49

检测IP是否合法

第一、自己遍历检测

function check_ip($ip){    $iparr = explode('.',$ip);    foreach($iparr as $v){ if($v>255) return false; }    return true;} echo '210.285.11.49,';var_dump(check_ip('210.285.11.49'));echo '
';echo '210.205.11.49,';var_dump(check_ip('210.205.11.49'));[code]输出:[code]210.285.11.49,bool(false)210.205.11.49,bool(true)

第二、使用ip2long返回

function check_ip($ip){    if(ip2long($ip)) return true;    return false;} echo '210.285.11.49,';var_dump(check_ip('210.285.11.49'));echo '
';echo '210.205.11.49,';var_dump(check_ip('210.205.11.49'));

输出:

210.285.11.49,bool(false)210.205.11.49,bool(true)

感谢各位的阅读,以上就是"php如何实现ip转整数"的内容了,经过本文的学习后,相信大家对php如何实现ip转整数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

输出 整数 结果 地址 函数 数字 数据 存储 学习 两个 内容 前导 字符 字符串 方法 符号 算法 篇文章 系统 索引 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网佳科技有限公司 科技赋能下的互联网金融 今日互联网科技 互联网为科技 广州互联网科技公司 杭州互联网科技公司 济南和联互联网科技有限公司 互联网之后的科技是什么 济南华为互联网科技产业总部基地 世界互联网科技公司市值排名 昊天互联网科技有限公司 岳阳华臻互联网科技有限公司 互联网行业科技股 互联网科技大赛获奖感言 科技互联网海报 元气玛特互联网科技公司是外包吗 中国互联网有什么科技 云南省自由互联网科技有限公司 南京一网一红互联网科技有限公司 求路客互联网科技电话 互联网科技金融 杭州互联网科技公司 宜安科技 互联网金融 深圳天众互联网科技公司 安控科技rtu产品工业互联网 互联网科技公司实习生 广东鹅鹅鹅互联网科技有限公司 重庆科技产业互联网有哪些 广东猫王互联网科技有限公司电话 宁波允成互联网科技有限公司
0