PHP根据IP地址获取地理位置城市和经纬度信息

php 复制代码
/** 根据IP地址 获取地理位置*/
function getLocationByIP($ip) {
    $url = "http://ip-api.com/json/{$ip}?lang=zh-CN&fields=status,message,country,countryCode,region,regionName,city,lat,lon,timezone,isp,org,as";
    $response = file_get_contents($url);
    $data = json_decode($response, true);

    if ($data['status'] == 'success') {
    	return $data;
        
    } else {
        return ''; // 或者返回错误信息
    }
}

在浏览器里请求这个地址

php 复制代码
http://ip-api.com/json/124.236.132.47?fields=status,message,country,countryCode,region,regionName,city,lat,lon,timezone,isp,org,as&lang=zh-CN

返回了这些信息

php 复制代码
{
"status":"success",
"country":"中国",
"countryCode":"CN",
"region":"HE",
"regionName":"河北省",
"city":"石家庄市",
"lat":38.036,
"lon":114.47,
"timezone":"Asia/Shanghai",
"isp":"Chinanet",
"org":"Chinanet HE",
"as":"AS4134 CHINANET-BACKBONE"
}
相关推荐
程序猿陌名!3 小时前
Android开发 AlarmManager set() 方法与WiFi忘记连接问题分析
android
骐骥14 小时前
2025-09-08升级问题记录: 升级SDK从Android11到Android12
android·android12·sdk31
CV资深专家7 小时前
Android 各分区模块编译配置(mk/bp)总结
android
zhao3266857518 小时前
海外代理IP平台Top3评测:LoongProxy、神龙动态IP、IPIPGO哪家更适合你?
服务器·网络·tcp/ip
zorro_z8 小时前
ThinkPHP8学习篇(六):数据库(二)
php
XMZH030428 小时前
网络编程;TCP控制机械臂;UDP文件传输;0910;ps今天没写出来
网络·tcp/ip·udp
louisgeek9 小时前
Java 线程池取消的方式
android
Billy_Zuo10 小时前
人工智能机器学习——模型评价及优化
android·人工智能·机器学习
tangweiguo0305198710 小时前
Flutter与原生混合开发:实现完美的暗夜模式同步方案
android·flutter
刘 大 望11 小时前
传输层:UDP/TCP协议
java·网络·网络协议·tcp/ip·udp·信息与通信