美文网首页
PHP处理IP地址的函数及底层思路

PHP处理IP地址的函数及底层思路

作者: 薛延祥 | 来源:发表于2021-02-06 11:21 被阅读0次

    1、问题

    我们经常会需要处理IPv4地址,例如:'192.168.0.1',标准格式是4段,中间用.连接,并且每一个值的范围是0~255。这样的字符串存储,占空间且非常不利于范围查找。因此,PHP中有函数进行专门对字符串转整形和反转的函数。

    2、IP地址转整形函数

    上面为IP地址,下面为通过该函数转为整形的值。

    可以确定出其底层的大概转换规则。IP 地址使用4 位地址定位设备,它采用点分十进制数的格式“xxx.xxx.xxx.xxx”,如192.168.1.66。

    四段值的范围是0~255。因此,从左到右可以按255的3次方、255的2次方、255的1次方、255的0次方来排序。也就是,将IP 地址转换为对应的数值可以应用以下公式实现:

    P1*255*255*255+P2*255*255+P3*255+P4*1

    在上面的公式中,P1 代表IP 地址第1 段的数值;P2 代表IP 地址第2 段的数值;P3 代表IP 地址第3 段的数值;P4 代表IP 地址第4 段的数值。

    特别注意:临界值在之前的PHP版本中是有问题的,但是经过验证,PHP7是没有问题的。

    ip2long() 将返回 false 在IP是 255.255.255.255 的情况,版本为 PHP 5 <= 5.0.2. 在修复后 PHP 5.0.3 会返回 -1 (与PHP4相同).

    3、整形转IP地址的函数

    可以看到能够原样转为IP地址。

    相关文章

      网友评论

          本文标题:PHP处理IP地址的函数及底层思路

          本文链接:https://www.haomeiwen.com/subject/xbontltx.html