123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- declare (strict_types = 1);
- namespace library\utils;
- // +----------------------------------------------------------------------
- // | [ 工具类-常用操作 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2018-2020 rights reserved.
- // +----------------------------------------------------------------------
- // | Author: TABLE ME
- // +----------------------------------------------------------------------
- // | Date: 2020-08-29 20:41
- // +----------------------------------------------------------------------
- use library\utils\Http;
- class UtilsTool
- {
- /**
- * ip地址转区域
- * @param type $ip
- */
- static public function ipToArea($ip=''){
- $timeout = 60;
- $http_header = array(
- 'content-type:application/json;charset=utf8'
- );
- $ip=urlencode($ip);
- $url = "http://ip.ws.126.net/ipquery?ip={$ip}";
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_HEADER, false);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $http_header);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //处理http证书问题
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $result = curl_exec($ch);
- curl_close($ch);
- if(!mb_check_encoding($result, "utf-8")){
- $result = mb_convert_encoding($result,'UTF-8',['ASCII','UTF-8','GB2312','GBK']);
- }
- if(!empty($result)){
- $result = trim($result);
- if(empty($result)){
- return false;
- }
- $result = explode("localAddress=", $result);
- if(empty($result) || count($result)<2){
- return false;
- }
- $jsonStr = $result[1];
- $jsonStr = str_replace("city", '"city"', $jsonStr);
- $jsonStr = str_replace("province", '"province"', $jsonStr);
- $jsonStr = str_replace(" ", "", $jsonStr);
- if(empty($jsonStr)){
- return false;
- }
- return @json_decode($jsonStr,true);
- }else{
- return false;
- }
- }
- }
|