`
onedada
  • 浏览: 103363 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

PHP:IP转换整形(转)

    博客分类:
  • php
 
阅读更多

本文转载自:   http://blog.chinaunix.net/uid-10697776-id-2935481.html

 

 

 

如何将四个字段以点分开的IP网络址协议地址转换成整数呢?PHP里有这么一个函数ip2long.比如

echoip2long("10.2.1.3");
?>

  我们将得到

  167903491

  这是如何计算的,目前我知道有两个算法。其一

functionip2int($ip){
 //我们先把ip分为四段,$ip1,$ip2,$ip3,$ip4
 list($ip1,$ip2,$ip3,$ip4)=explode(".",$ip);
 //然后第一段乘以256的三次方,第二段乘以256的平方,第三段乘以256
 //这即是我们得到的值
 return$ip1*pow(256,3)+$ip2*pow(256,2)+$ip3*256+$ip4;
}
?>

  其二,用位运算

functionip2int($ip){
 list($ip1,$ip2,$ip3,$ip4)=explode(".",$ip);
 return($ip1<<24)|($ip2<<16)|($ip3<<8)|($ip4);
}
?>

  我们会发现,有些ip转化成整数后,是负的,这是因为得到的结果是有符号整型,最大值是2147483647.要把它转化为无符号的,可以用

  sprintf("%u",ip2long($ip);

  就能转换为正整数。而且得到的结果用long2ip也可以正常转换回原来的ip地址。也可以用ip2long来验证一个ip是否是有效的,如

functionchk_ip($ip){
 if(ip2long($ip)=="-1"){
   returnfalse;
 }
 returntrue;
}
//应用
var_export(chk_ip("10.111.149.42"));
var_export(chk_ip("10.111.256.42"));
?>

  将输出true和false

 

 

 

 

 

分享到:
评论

相关推荐

    纯真IP库转换工具转换为其他IP库或者TXT文本

    6. **程序接口**:IP库转换工具可能提供API接口,允许开发者在自己的程序中直接调用,实现动态更新或转换IP库,增强应用的功能。 7. **版权与更新**:纯真IP库作为一个商业产品,使用时需注意版权问题,遵循其授权...

    ip转换成国家

    实现PHP的IP转国家功能,可以分为以下几个步骤: 1. **安装库**:首先需要下载GeoLite2数据库文件,通常是.mmdb格式。在PHP中,可以使用如`geoip2`或`maxmind-db`这样的扩展来读取这类数据库。 2. **加载数据库**...

    纯php实现ip或ip段转换地名或其它解释

    用于将IP地址范围转换成描述字符串,常用于IP位置查询,城市查询,ISP查询等。 纯 php 代码完成,不依赖任何扩展,采用二分查找定位IP区间,速度很快。 文本词典可兼容纯真IP数据库,提供程序脚本转换文本文件至本...

    php编写的中文繁简转换类

    在PHP编程语言中,中文繁简转换是一种常见的需求,特别是在处理多语言网站或者与两岸三地用户交流时。本文将详细解析如何使用PHP编写一个中文繁简转换类,并结合提供的"php繁简转换.php"文件,探讨其核心知识点。 ...

    php_wms2tile:将 wms 服务转换为 XYZ 切片

    php_wms2tile - 轻松地将 wms 服务转换为滑动地图的瓷砖现场演示: ČÚZK: ://osm.zby.cz/tiles_cuzk.php/17/70788/44404.test ÚHUL: ://osm.zby.cz/tiles_uhul.php/14/8848/5550.test iD OSM编辑器自定义背景...

    PHP实现IP–数字互相转换

    在IT领域,网络编程是不可或缺的一部分,而IP地址与数字之间的转换则是网络编程中的常见操作。本文将深入探讨如何使用PHP实现IP地址与数字(通常称为整型或长整型)之间的相互转换,同时参考提供的博客链接:[链接已...

    php 编码相互转换类(gbk转换utf8)

    在IT行业中,编码转换是一个常见的需求,特别是在处理中文字符时。GBK和UTF-8是两种广泛使用的字符编码标准,它们各自有不同的特点和适用场景。PHP作为服务器端脚本语言,提供了多种方法来处理编码转换问题,包括...

    PHP使用纯真数据IP库转换物理IP

    本文将详细介绍如何在PHP中利用纯真数据IP库(Zabbix)来实现IP到物理地址的转换,特别关注QQIP地址的处理。 首先,纯真IP数据库(通常称为“Zabbix”或“纯真IP库”)是一个包含大量IP地址与地理位置对应关系的...

    qq ip数据库转换成acess的mdb数据库工具

    QQ IP数据库转换成Access的MDB数据库工具是一种实用的软件,主要功能是将QQ提供的IP数据库文件转换为Microsoft Access(.mdb)格式,便于在Access环境中进行数据分析和管理。这种工具通常用于网络管理和地理定位,...

    根据IP地址转换省份城市地址

    根据IP地址转换省份城市地址,做了utf8转换,可以进行截取,比如身份可以只取前面两个字,个别的情况例外(例如:黑龙江,南海诸岛),代码亲测可以用,没有后门,没有木马,此分享是在PHP的基础上进行的案例,没有...

    php IP转换整形(ip2long)的详解

    PHP中的IP转换整形(ip2long)是一个常用的函数,用于将传统的IPv4地址(由四个十进制数字组成,每个数字之间用点分隔)转换成一个长整型数值。这种转换方法在很多网络编程和数据库操作中非常有用,例如在存储IP地址...

    【PHP】根据IP地址查询省市(纯真数据库最新版)

    2. **IP地址转换**:IP地址在数据库中以十进制形式存储,而网络上常见的IP地址是点分十进制表示。PHP的`ip2long()`函数可以将点分十进制IP转换为十进制,便于与数据库中的数据进行比较。 3. **区间查找**:由于IP...

    IP地址转城市接口Webservice

    通过IP地址转中国城市(webservice)版,您可以获得:最新IP地址转中国城市数据库数据,它包含319356条国内IP,字段:IP地址、省份、城市。内附调用方法(支持Asp,.NET,C#,PHP等开发语言)。可以根据指定的IP返回 ...

    php判断IP为国内国外

    - 在`index.php`中,可能会有一个函数或方法,如`isIpInChina($ip)`,它首先使用`ip2long()`将IP地址转换为数字,然后调用`iplimit.class.php`中的方法查询`ipdata.db`,最后根据查询结果判断IP地址是否属于中国。...

    php 根据ip地址判断是那个国家

    这里提到的`iplocaion.class.php`和`qqwry`可能是一个IP库,如QQWry.Dat,这是一个包含了全球IP地址范围及其对应国家、城市信息的数据文件。`iplocaion.class.php`可能是处理这个数据文件的PHP类,用于读取和解析IP...

    通过GeoIP获取ip所属地,并将国家转换为中文

    在IT行业中,GeoIP是一项非常实用的技术,它主要用于识别...为了使用这套工具,你需要将IP地址传递给`ip_2_country.php`,它会返回该IP的国家信息,如果需要中文名称,还可以结合`country_code_2_zhname.txt`进行转换。

    Java_IPv4转换_ip2long_long2IP

    Java_IPv4转换_ip2long_long2IP,与php/java/javascript互相兼容

    PHP接口API文档转换SDK【神器】2015-12-23

    **PHP接口API文档转换SDK详解** 在现代软件开发中,API(Application Programming Interface)文档扮演着至关重要的角色,它为开发者提供了与系统交互的详细指南。API文档转换SDK,特别是PHP版本,使得开发者能够更...

    将IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法

    首先我们要先了解一下IP地址转换为整型(严格来说应该说是长整型)的原理~ 【转换原理】:假设IP为:w.x.y.z,则IP地址转为整型数字的计算公式为:intIP = 256*256*256*w + 256*256*x + 256*y...‘| describtion: 将IP转

Global site tag (gtag.js) - Google Analytics