可通过五种专业方法获取IP地址的经纬度:一、调用ipinfo.io等在线API;二、使用阿里云IP地理位置增强版接口;三、本地离线数据库(纯真库+CNIP);四、集成GeoLite2-City.mmdb;五、对接liguangchun.cn等轻量级国产API。

如果您需要从一个IP地址获取其对应的地理坐标(经纬度),则需借助具备地理编码能力的IP定位服务或本地数据库。以下是实现该目标的多种专业方法:
一、调用高精度在线IP地理定位API
在线API服务通过整合全球ISP注册数据、基站覆盖推测及历史分配记录,可直接返回包含经纬度的结构化地理信息,响应迅速且无需部署环境。
1、访问 https://ipinfo.io 或 https://ip-api.com 网站。
2、在输入框中粘贴待查询IP地址,例如 203.208.60.1。
3、点击“Search”按钮或按回车键提交请求。
4、在返回的JSON结果中提取 loc 字段(格式为“纬度,经度”,如“30.2214,-81.5571”)或 latitude 与 longitude 字段。
二、使用阿里云IP地理位置增强版接口
该接口专为中国大陆IP优化,内嵌行政区划编码(adcode)与运营商基站映射逻辑,支持返回省、市、区县及经纬度,定位颗粒度达街道级近似范围。
1、前往 https://help.aliyun.com/product/42215.html 注册阿里云账号并开通IP地理位置服务。
2、在控制台创建AccessKey,并启用“IP归属地-增强版”功能。
3、构造HTTP GET请求,示例URL为:https://ipgeo-intl.aliyuncs.com/ipgeo?ip=114.114.114.114&lang=zh-CN&version=2.0。
4、解析响应体中 location.latitude 和 location.longitude 的数值。
三、本地离线数据库批量解析(纯真库+CNIP)
适用于无公网访问权限、需高频批量处理或对数据隐私有严格要求的场景;纯真IP库(QQWry.dat)对中国大陆IP区县级匹配率高,CNIP数据库进一步支持adcode映射与基站辅助定位。
1、从 https://www.cz88.net/ 下载最新版纯真IP库(QQWry.dat),保存至本地指定路径。
2、执行命令 pip install nali 安装命令行查询工具(需已安装Python 3.7+)。
3、运行指令 nali 183.232.192.123,输出含位置描述,但不直接提供经纬度;如需坐标,须配合CNIP数据库。
4、下载ipip.net提供的CNIP免费试用版数据库,使用其CLI工具执行 ipip -f cnip.dat 183.232.192.123,输出含 latitude 与 longitude 字段。
四、集成GeoLite2-City.mmdb离线数据库(Java/Python)
MaxMind官方维护的GeoLite2数据库支持毫秒级本地查询,覆盖全球IP,返回标准ISO国家码、城市名及精确到小数点后4位的经纬度,适合嵌入后端服务长期运行。
1、从 https://dev.maxmind.com/geoip/geoip2/geolite2/ 下载GeoLite2-City.mmdb文件(需注册并接受许可协议)。
2、Python环境下执行 pip install geoip2;Java项目中引入Maven依赖:
3、Python示例代码中调用 reader.city(ip).location.latitude 与 reader.city(ip).location.longitude 获取坐标值。
4、Java示例中通过 response.getLocation().getLatitude() 和 response.getLocation().getLongitude() 提取经纬度。
五、对接轻量级国产API(如liguangchun.cn)
该接口免密调用、响应结构简洁,直接返回标准化JSON,字段命名清晰,适用于快速验证或低频前端调用场景。
1、向 https://api.liguangchun.cn/api/v7/ip/ 发起GET请求,可在URL末尾附加参数 ?ip=223.104.10.1 指定查询目标。
2、检查响应状态码是否为200,确认 data.code 值为1表示成功。
3、读取 data.location.latitude 与 data.location.longitude 字段内容。
4、若未传参IP,默认返回发起请求设备的出口IP坐标,可用于前端自动定位。

















