使用php怎么将IP转换为整形-创新互联

这篇文章主要介绍了使用php怎么将IP转换为整形,创新互联网站建设公司,小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随创新互联网站建设公司,小编来看看吧!

成都服务器托管,创新互联公司提供包括服务器租用、四川电信科技城机房、带宽租用、云主机、机柜租用、主机租用托管、CDN网站加速、域名注册等业务的一体化完整服务。电话咨询:13518219792

php有什么用

php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使得php经久不衰。

代码如下:



echo ip2long("10.2.1.3");
?>



我们将得到
167903491

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


复制代码 代码如下:


function ip2int($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;
}
?>



其二,用位运算


复制代码 代码如下:


function ip2int($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是否是有效的,如


复制代码 代码如下:


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


以上就是创新互联网站建设公司,小编为大家收集整理的使用php怎么将IP转换为整形,如何觉得创新互联建站的内容还不错,欢迎将创新互联建站推荐给身边好友。


本文标题:使用php怎么将IP转换为整形-创新互联
文章起源:http://pwwzsj.com/article/dpidph.html