当前位置: 首页 > news >正文

php ip 转 整数,ipv4 地址转整数

IPV4 地址长度为:32为,即 4个字节,以分号十进制组成的4段表示:10.10.10.10,每段数值范围:0 ~ 255 (2^8 - 1)

PHP 内置函数

ip2long() — 将 IPV4 的字符串互联网协议转换成长整型数字

long2ip() — 将长整型转化为字符串形式带点的互联网标准格式地址(IPV4)

地址转整数

32位二进制转十进制,如:10.10.10.10,对应二进制为:00001010 00001010 00001010 00001010,转换十进制:168430090

原理:第一段:向左移 24 位,第二段:向左移 16 位,第三段:向左移 8 位,最后一段:保留原值

a769cc2c0651

image.png

function ip2int(string $ip)

{

$out = 0;

$ex = explode('.', $ip);

if(count($ex) < 3){

return false;

}

for($i = 0; $i <= 3; ++$i){

$str_size = strlen($ex[$i]);

if($str_size == 0 || $str_size > 3){

return false;

}

$out += $ex[$i] << 8 * (3 - $i);

}

return $out;

}

整数转IP

反向处理即可

function int2ip(int $ipint)

{

if(0 > $ipint){

return false;

}

$out = $ipint >> 24;

$out .= '.' . (($ipint & 0x00FFFFFF) >> 16);

$out .= '.' . (($ipint & 0x0000FFFF) >> 8);

$out .= '.' . ($ipint & 0x000000FF);

return $out;

}

IP 转整数应用场景

通过 IP 查找归属地:可利用二分查找算法。

相关文章:

  • php可移植,PHP – 是否有PHPUnit的可移植版本?
  • 初级php工程师掌握技能,php工程师必须掌握的职业技能(上)
  • vue和php页面渲染哪个性能好,vue和react渲染的区别是什么?
  • 康盛php环境配置,php教程
  • php admin flag,ini_set、php_value、php_flag、php_admin_value、php_admin_flag修改php.ini参数
  • php终止请求,连接中止请求
  • 有php的转跳文件吗,DEDE实现转跳属性文档在模板上调用出转跳地址
  • oracle vm redhat共享文件夹,virtual box虚拟机在linux下设置共享文件夹(示例代码)
  • 逻辑io 物理io oracle,物理IO与逻辑IO
  • oracle是哪种体系结构,Oracle体系结构是什么?
  • oracle dataguard文档,完整版Oracle_DataGuard文档
  • linux命令dm,Linux systool 命令用法详解-Linux命令大全(手册)
  • linux多核操作命令,Linux多核并行编程关键技术
  • linux退出登录脚本,Linux实现自动登录的实例讲解
  • linux升级openssh提示密码错误,关于linux升级openssh须知
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • [NodeJS] 关于Buffer
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • bearychat的java client
  • CentOS7 安装JDK
  • iOS编译提示和导航提示
  • javascript 总结(常用工具类的封装)
  • PAT A1050
  • React+TypeScript入门
  • React组件设计模式(一)
  • springboot_database项目介绍
  • Spring框架之我见(三)——IOC、AOP
  • sublime配置文件
  • 蓝海存储开关机注意事项总结
  • 三分钟教你同步 Visual Studio Code 设置
  • 深度学习中的信息论知识详解
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 物联网链路协议
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 转载:[译] 内容加速黑科技趣谈
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • #Java第九次作业--输入输出流和文件操作
  • #laravel 通过手动安装依赖PHPExcel#
  • #pragam once 和 #ifndef 预编译头
  • (2)STL算法之元素计数
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (九十四)函数和二维数组
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET导入Excel数据
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • []T 还是 []*T, 这是一个问题
  • [1] 平面(Plane)图形的生成算法
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬