zoukankan      html  css  js  c++  java
  • 使用新浪IP库获取IP详细地址

    使用新浪IP库获取IP详细地址

    <?php
    class Tool{
        /**
         * 获取IP的归属地( 新浪IP库 )
         *
         * @param $ip String        IP地址:112.65.102.16
         * @return Array
         */
        static public function getIpCity($ip)
        {
            $ip = preg_replace("/s/","",preg_replace("/
    /","",$ip));
            $link = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=".$ip."&t=".time();
            $ipJson = self::httpCurl($link);
            preg_match("/"country":"(.*)"/Uis",$ipJson, $match1);
            preg_match("/"province":"(.*)"/Uis",$ipJson, $match2);
            preg_match("/"city":"(.*)"/Uis",$ipJson, $match3);
            return array(
                'country'=>self::ucode2zh($match1[1]),  // 国家
                'province'=>self::ucode2zh($match2[1]), //
                'city'=>self::ucode2zh($match3[1])      // 城市
            );   
        }
    
        /**
         * Curl方式获取信息
         */
        static public function httpCurl($url) 
        { 
            $curl_handle = curl_init(); 
            curl_setopt($curl_handle, CURLOPT_URL, $url); 
            curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2); 
            curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1); 
            curl_setopt($curl_handle, CURLOPT_FAILONERROR,1); 
            $file_content = curl_exec($curl_handle); 
            curl_close($curl_handle); 
            return $file_content; 
        }
    
        /**
         * 将unicode编码转化为中文,转化失败返回原字符串
         * 
         * @param $code String      unicode编码
         * @return String
         */
        static public function ucode2zh($code)
        {
            $temp = explode('u',$code);
            $rslt = array();
            array_shift($temp);
            foreach($temp as $k => $v)
            { 
                $v = hexdec($v);
                $rslt[] = '&#' . $v . ';'; 
            }
            
            $r = implode('',$rslt);
            return empty($r) ? $code : $r;  
        }
    }

    获取IP地址类使用实例

    <?php
    $ipStr = Tool::getIpCity('112.65.102.16');
    print_r($ipStr);
    
    # 返回结果
    Array ( [country] => 中国 [province] => 上海 [city] => 上海 )
  • 相关阅读:
    layui table表格 表头与内容列错位问题(只有纵向滚动条的情况)
    layui table+复杂表头+合并单元格
    echarts 柱状图
    1-jdk的安装与配置
    变量的解构赋值(对象)
    变量的解构赋值(数组)
    git常用命令
    markdown常用语法
    微信小程序全局/页面配置
    git使用简介(二)
  • 原文地址:https://www.cnblogs.com/yhdsir/p/5529002.html
Copyright © 2011-2022 走看看