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

1、问题

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

2、IP地址转整形函数

6c214f9bc1a6

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

6c214f9bc1a6

6c214f9bc1a6

可以确定出其底层的大概转换规则。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地址的函数

6c214f9bc1a6

6c214f9bc1a6

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值