精华内容
下载资源
问答
  • ip2long

    2018-05-03 21:32:22
    //ip转为整型echo long2ip($v); //整型转为ip?>注意:ip转为整型后(有符号整型),是负的sprintf(“%U”,ip2long($ip));可转化为正整数解决方案:(出现负数及解决方案)<?php$ip = '192.168.101....

    <?php

    $ip = '192.168.0.1';

    $v = ip2long($ip); //ip转为整型

    echo long2ip($v); //整型转为ip

    ?>

    注意:ip转为整型后(有符号整型),是负的

    sprintf(“%U”,ip2long($ip));可转化为正整数


    解决方案:(出现负数及解决方案)

    <?php

    $ip = '192.168.101.100';

    $ip_long = sprintf(“%U”,ip2long($ip));

    echo $ip_long.PHP_EOL;   //321456454513

    echo long2ip($ip_long);   //192.168.101.100




    展开全文
  • PHP里有这么一个函数ip2long.比如复制代码 代码如下:<?phpecho ip2long(“10.2.1.3”);?>我们将得到167903491这是如何计算的,目前我知道有两个算法。其一复制代码 代码如下:<?phpfunction ip2int($ip){ /...
  • Java_IPv4转换_ip2long_long2IP,与php/java/javascript互相兼容
  • 主要介绍了go语言版的ip2long函数,实例分析了Go语言实现的ip2long函数技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 一、说明 PHP的ip2long和long2ip函数都仅仅适用于IPV4范围内的IP...使用long2ip函数时,转换长整型的极限是2147483647,一旦超过,就会报错。 因此,在现在广泛使用IPV6的情况下,有必要升级一下这两个函数,整...

    一、说明

    PHP的ip2long和long2ip函数都仅仅适用于IPV4范围内的IP地址转换。

    使用ip2long函数时,IP地址极限是127.255.255.255,一旦超过,就会出现各种问题,要么转换成带负号的长整型,要么输出空白;

    使用long2ip函数时,转换长整型的极限是2147483647,一旦超过,就会报错。

    因此,在现在广泛使用IPV6的情况下,有必要升级一下这两个函数,整理总结网上的各路大神的资源,总结此篇博文。

    二、ipToLong函数(实现ip2long效果)

    /*
     *	ip字符串格式转换为ip长整型格式
     *	@ param ip 要操作的ip字符串
     *	@ return int
     */
    function ipToLong($ip)
    {
        return sprintf('%u', ip2long($ip))
    }

    三、longToIp(实现long2ip效果)

    /*
     *  ip长整型格式转换为ip字符串格式
     *  Valid range: 0.0.0.0 -> 255.255.255.255(0 -> 4294967295)
     *  @ param long 要操作的ip字符串
     *  @ return int
     */
    function longToIp($long)
    {
        if ($long < 0 || $long > 4294967295) return false;
    
        $ip = "";
    
        for ($i=3;$i>=0;$i--) {
            $ip   .= (int)($long / pow(256,$i));
            $long -= (int)($long / pow(256,$i))*pow(256,$i);
    
            if ($i>0) $ip .= ".";
        }
    
        return $ip;
    }

    四、大小端字节序的IP地址转换

    1. 概念理解参考:http://www.ruanyifeng.com/blog/2016/11/byte-order.html

    2. 转换方法如下:

    /**
     *   大端序ip转换成小端序 或 小端序ip转换成大端序
     *   如果是长整型的ip,先用longToIp转成格式化的ip地址,再调用当前函数转换
     */
    function change($ip) {
        $arr = explode('.', $ip);
        krsort($arr);
        return implode('.', $arr);
    }
    
    // eg:10.5.2.109 => 109.2.5.10
    // eg:109.2.5.10 => 10.5.2.109

    3. PHP判断当前所在服务器设备的大小端序

     if (pack('L', 1) === pack('N', 1)) {
        echo '大端序';
     } else {
        echo '小端序';
     }

     

    参考链接:

    http://php.net/manual/zh/function.long2ip.php

    https://my.oschina.net/goal/blog/202381

    展开全文
  • php提供了ip2long与long2ip方法对ip地址处理。 1、ip2long — 将一个IPV4的字符串互联网协议转换成数字格式 int ip2long ( string $ip_address ) 参数: ip_address 一个标准格式的地址。 返回值: 返回IP地址转换后...
  • php---long2ip()与ip2long()

    2017-12-05 11:05:58
    ip2long()将字符串ip转成int var_dump(ip2long(“115.115.115....int 1936946035long2ip将int转成字符串ip var_dump(long2ip(1936946035));string '115.115.115.115' (length=15)作用:以ip做索引,int查询比char快

    ip2long()将字符串ip转成int
    var_dump(ip2long(“115.115.115.115”));

    int 1936946035

    long2ip将int转成字符串ip
    var_dump(long2ip(1936946035));

    string '115.115.115.115' (length=15)

    作用:以ip做索引,int查询比char快

    展开全文
  • 本篇文章是对PHP函数ip2long转换IP时数值太大产生负数的解决方法进行了详细的分析介绍,需要的朋友参考下
  • ip2long和long2ip

    万次阅读 2011-01-07 13:27:00
    ip2long:将IPv4的ip地址(以小数点分隔形式)转换为intDescription int ip2long ( string ip_address )   如果ip地址非法,返回FALSE(PHP 5.0.0以后)   注意,由于返回值是...

    ip2long:将IPv4的ip地址(以小数点分隔形式)转换为int

    Description

    int ip2long ( string ip_address )

     

    如果ip地址非法,返回FALSE(PHP 5.0.0以后)

     

    注意,由于返回值是int,所以会造成数据溢出,比如有些ip地址转换后变成负数,因此需要转换成unsigned int类型

     

    unsigned int _ip2long( string ip_address )

     

    function _ip2long( $ip_address )
    {
        return sprintf("%u",ip2long($ip_address));
    }

     

    如果要确认一个ip地址是否合法(IP validation ),最好的使用方式是结合long2ip()函数一起使用

     

    例如:

     

    <?php
        // make sure IPs are valid. also converts a non-complete IP into
        // a proper dotted quad as explained below.
        $ip = long2ip ( ip2long ( "127.0.0.1" )); // "127.0.0.1"
        $ip = long2ip ( ip2long ( "10.0.0" ));    // "10.0.0.0"
        $ip = long2ip ( ip2long ( "10.0.256" ));  // "10.0.1.0"

     

    #end of script

     

    *******************************************************************************************

     

    long2ip:将int型表示的ip地址表示成字符串 aaa.bbb.ccc.ddd 的形式

    Description

    string long2ip ( int proper_address )


    展开全文
  •  在PHP中,我们会经常遇到使用客户端的IP地址的操作,而如果需要大量的存取IP地址的时候,直接将IP地址以字符串存储到数据库中将占用不小的存储空间,而将IP地址以long整型进行存储将节约不少空间。  如何将IP...
  • $data['iplong'] = bindec(decbin(ip2long($value))); print_r($data); } ``` 显示结果 Array ( [0] => 208.104.70.215 [1] => 74.101.176.171 [2] => 73.17.35.30 [3] => 70.198.197....
  • PHP IP地址函数ip2long(),long2ip()

    千次阅读 2013-09-29 14:20:46
    在百度中函数搜索...1、ip2long()函数,将四个字段以点分开的IP网络址协议地址转换成整数.比如 echo ip2long("10.2.1.3"); ?> 我们将得到 167903491 这是如何计算的,目前我知道有两个算法。 其一
  • ip2long long2ip

    2013-06-03 16:02:41
    unsigned long ip2ulong(char *ip) { unsigned u1, u2, u3, u4; return sscanf(ip, "%u.%u.%u.%u", &u1, &u2, &u3, &u4) == 4 && u1 255 && u2 255 && u3 255 && u4 255 ? u1*256
  • #include //--------------------------------------------------------------------- ...unsigned long ip2long(const char* ip){   unsigned char a, b, c, d;   sscanf(ip, "%hhu.%hhu.%hhu.%hhu", &a, &
  • php ip2long 出现负数原因及解决方法

    万次阅读 2015-10-31 12:03:37
    php提供了ip2long与long2ip方法对ip地址处理。ip2long — 将一个IPV4的字符串互联网协议转换成数字格式int,2.long2ip — 将数字格式转换成一个IPV4的字符串互联网协议
  • 博文链接:https://sofire.iteye.com/blog/110118
  • PHP使用ip2long跳过的坑

    千次阅读 2017-07-28 10:47:04
    之前存储IP地址都是用varchar(15)来存储在数据库中,后来发现有个ip2long的函数,于是就把IP存储改为Int(11),起初测试均没有发现什么问题。上线后发现有很多127.255.255.255的IP地址,非常的奇怪,我在做存储之前也...
  • golang ip2long long2ip

    2018-05-17 17:35:14
    "long2ip fail:" , r, v)  }  } } func ip2long (ip net.IP) uint32 {   a := uint32 (ip[ 12 ])   b := uint32 (ip[ 13 ])   c := uint32 (ip[ 14 ])   d := uint32 (ip[ 15 ])   return uint...
  • php ip2longIP入数据库

    千次阅读 2014-09-23 09:08:37
    $ip = '192.168.1.38'; /** * 在32位的机子上,echo ip2long('192.168.1.38'); * 由于超过32位的最大数,导致输出负数-1062731482。...var_dump( bindec(decbin(ip2long($ip)))); //float(323223
  • php IP转换整形(ip2long)

    2012-12-14 14:57:27
    php IP转换整形(ip2long) (2010-05-23 14:33:27)转载▼ 标签: long ip地址 字段 list 杂谈 分类: php经典代码 如何将四个字段以点分开的IP网络址协议地址转换成整数呢?PHP里有这么一个函数ip2long.比如 echo ip...
  • php函数long2ipip2long()

    万次阅读 2015-11-25 19:07:38
    long2ip — Converts an long integer address into a string in (IPv4) Internet standard dotted format string long2ip ( string $proper_address ) The function long2ip() generates an Internet address in d
  • PHP的ip2long和long2ip函数的实现原理

    千次阅读 2014-06-27 17:37:11
    最近要做个十进制数字的可逆转换做邀请码,一直没搞清楚怎么弄的,实在太复杂了,今天弄IP时想到这个可以进行转换,于是研究了下原理: 主要是自己整理了下: $ip = '12.34.56.78'; $ips = explode('.', $ip);...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 205,901
精华内容 82,360
关键字:

ip2long