|
@@ -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('获取失败!');
|
|
|
}
|
|
|
}
|
|
|
|