PHP处理IP

作者: 方圆百里找对手 | 来源:发表于2017-11-06 11:39 被阅读6次
    /**
    * Converts a printable IP into an unpacked binary string
    *
    * @author Mike Mackintosh - mike@bakeryphp.com
    * @link http://www.highonphp.com/5-tips-for-working-with-ipv6-in-php
    * @param string $ip
    * @return string $bin
    */
    public static function compressIp($ip)
    {
        if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
            return current(unpack('A4', inet_pton($ip)));
        }
        elseif (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
            return current(unpack('A16', inet_pton($ip)));
        }
        return false;
    }
    
    /**
    * Converts an unpacked binary string into a printable IP
    *
    * @author Mike Mackintosh - mike@bakeryphp.com
    * @link http://www.highonphp.com/5-tips-for-working-with-ipv6-in-php
    * @param string $str
    * @return string $ip
    */
    public static function expandIp($str)
    {
        if (strlen($str) == 16 OR strlen($str) == 4) {
            return inet_ntop(pack("A".strlen($str), $str));
        }
        return false;
    }
    
    

    相关文章

      网友评论

        本文标题:PHP处理IP

        本文链接:https://www.haomeiwen.com/subject/pjtlmxtx.html