ip变int型了吗?为什么ip变整形?ip变整形的算法是什么? 发布日期:2017-03-09 11:06:42     博主推荐★

转化过程演练

ip:192.168.10.17

ip转化16进制码:C0-A8-0A-11   (比如17=1*16+1,10=0*16+A以此类推)


最后就变成算 C0-A8-0A-11的16进制转10进制的算法了


演练推算过程

C0 = 12*16 + 0 = 192

A8 = 10*16+8 = 168

0A = 0*16 + 10 = 10

11 = 1*16 + 1    = 17


其实就是原来的ip倒过来,然后乘以权重的问题

3221225472 + 11010048 + 2560 + 17 = 3232238097

192*16^6+168*16^4+10*16^2 +17*16^0 = 3232238097


总结:那么既然如此,我们可以省略中间环节,那么算法就是将ip字符串按照"."分割,然后我们给权重 ( 16相当于2^4 )

那就就是倒叙 192>>24 + 168>>16 + 10>>8 + 17  = 3232238097


PHP优化的方法:

<?php
   $ip = '192.168.10.17';
   $long = sprintf("%u",ip2long($ip));
   echo $long;
?>

输出结果:3232238097


博文地址:https://blog.ahamu.cn/blog/detail.html?id=125
   
推荐文章
  • 1
    sysbench
    2020/07/08
  • 2
    phper转java记录篇-spring boot
    2020/06/10
  • 3
    thinkphp5.0使用路由之后,post请求的
    2020/05/19
  • 4
    springboot单元测试aop失效
    2020/05/15
  • 5
    脑海中的JVM
    2020/05/12
  • 6
    IDEA搜索插件时显示search results
    2020/05/12
  • 7
    spring boot 配置加载源码查找
    2020/04/20
  • 8
    通过javap命令分析java汇编指令
    2020/04/16
  • 9
    IDEA小知识:查看JVM内存使用情况的步骤
    2020/04/16
  • 10
    springboot-加载自定义的properti
    2020/04/14
  • 11
    Jenkins执行shell脚本无法启动子进程解决
    2020/04/03
  • 12
    mac idea激活找专业的
    2020/04/02
  • 13
    Jenkins + DockerSwarm 实现弹
    2020/03/31
  • 14
    mac swarm学习过程
    2020/03/31
  • 15
    spring cloud
    2020/03/18
  • 16
    JAVA开发中遇到的问题记录002
    2020/03/12
  • 17
    JAVA开发中遇到的问题记录001
    2020/03/07
  • 18
    php -i查看信息
    2020/02/23
  • 19
    phpStorm中使用xdebug工具调试dock
    2019/12/09
  • 20
    讲的比较好的B+树执行原理的文章
    2019/12/09
最喜标签
NYOJ 面试 AJAX ping CentOS 灰度算法 YII2