rkljw 1 miesiąc temu
rodzic
commit
439a48a565
1 zmienionych plików z 19 dodań i 18 usunięć
  1. 19 18
      app/JsonRpc/PublicRpcService.php

+ 19 - 18
app/JsonRpc/PublicRpcService.php

@@ -1016,27 +1016,28 @@ class PublicRpcService implements PublicRpcServiceInterface
      */
     public function getIpInfo(array $data) :array
     {
-        $client_ip = isset($data['ip']) && $data['ip']??$_SERVER['REMOTE_ADDR'];
-        // 使用 IPinfo 服务获取 IP 信息
+        try {
+            $client_ip = isset($data['ip']) && $data['ip']??$_SERVER['REMOTE_ADDR'];
+            // 使用 IPinfo 服务获取 IP 信息
 //        $api_url = "https://ipinfo.io/{$client_ip}/json";
-        //http://ip-api.com/json/117.136.12.79?lang=zh-cn
-        $api_url = "http://ip-api.com/json/{$client_ip}/?lang=zh-cn";
-        $ch = curl_init($api_url);
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-        $response = curl_exec($ch);
-        curl_close($ch);
-        // 解析 JSON 响应
-        $ip_info = json_decode($response, true);
-        // 提取地址和经纬度
-        if ($ip_info) {
+            //http://ip-api.com/json/117.136.12.79?lang=zh-cn
+            $api_url = "http://ip-api.com/json/{$client_ip}/?lang=zh-cn";
+            $ch = curl_init($api_url);
+            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+            $response = curl_exec($ch);
+            curl_close($ch);
+            // 解析 JSON 响应
+            $ip_info = json_decode($response, true);
+            // 提取地址和经纬度i
+            if ($ip_info) {
 //            $latitude = explode(',', $ip_info['loc'])[0];
 //            $longitude = explode(',', $ip_info['loc'])[1];
-            $ip_info['latitude'] = $ip_info['lat'];
-            $ip_info['longitude'] = $ip_info['lon'];
-            return Result::success($ip_info);
-        } else {
-            $data['ip'] = '101.254.114.212';
-            $this->getIpinfo(["ip"=>$data['ip']]);
+                $ip_info['latitude'] = $ip_info['lat'];
+                $ip_info['longitude'] = $ip_info['lon'];
+                return Result::success($ip_info);
+            }
+        }catch (\Exception $e){
+            return Result::error('获取失败!');
         }
     }