`
onedada
  • 浏览: 100723 次
  • 性别: 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文本

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

    ip转换成国家

    把ip地址转换成集体国家 IP to country PHP代码类

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

    PHP 使用纯真数据IP库转换物理IP,QQIP地址

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

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

    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编辑器自定义背景...

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

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

    IP地址转城市接口Webservice

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

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

    php 编码相互转换类(gbk转换utf8). 解决iconv无法完美转换的问题。 非常不错啊

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

    如何将四个字段以点分开的IP网络址协议地址转换成整数呢?PHP里有这么一个函数ip2long.比如复制代码 代码如下:&lt;?phpecho ip2long(“10.2.1.3”);?&gt;我们将得到167903491这是如何计算的,目前我知道有两个算法。...

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

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

    通过实例解析PHP数据类型转换方法

    (int)、(integer):转换成整形 (float)、(double)、(real):转换成浮点型 (string):转换成字符串 (bool)、(boolean):转换成布尔类型 (array):转换成数组 (object):转换成对象 PHP数据...

    php编写的中文繁简转换类

    php编写的中文繁简转换类 ,代码最后写了一小段调用实例

    PHP中数据类型转换的三种方式

    1.(int)、(integer):转换成整形 2.(float)、(double)、(real):转换成浮点型 3.(string):转换成字符串 4.(bool)、(boolean):转换成布尔类型 5.(array):转换成数组 6.(object):转换成对象 ...

    PHP汉字拼音转换

    Pinyin.class.php类文件可以将大多数汉字转换成汉语拼音,当然也有个别生僻字不能转换,如果你想转换所有的汉字拼音的话,可能需要再配合一个汉字字库来实现,使用该类文件就基本能满足你的项目需求了。用法: ...

    php文件编码转换

    因为以前的php文件都是gb2312,如果文件数目庞大的话一一改变会很困难。先介绍个方法: 用EditPlus可以批量修改打开的文件编码,Document-...使用EditPlus转换编码之后,再运行另一个函数,可以把文件全部还原回去。

    Java_IPv4转换_ip2long_long2IP

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

    php汉字转换拼音程序

    php汉字转换拼音程序php汉字转换拼音程序php汉字转换拼音程序php汉字转换拼音程序php汉字转换拼音程序vvv

    php中文转换成拼音api

    php中文转换成拼音apiphp中文转换成拼音apiphp中文转换成拼音apiphp中文转换成拼音apiphp中文转换成拼音apiphp中文转换成拼音api

Global site tag (gtag.js) - Google Analytics