常用的几种API获取ip地理位置的使用方法

article/2025/10/14 14:44:49

最近公司让做一个用户登录、付费的时候记录操作人的地理位置。
搜了很多帖子,一开始用的淘宝的api,但是用了一段时间发现,这个api当获取的次数多了之后,就报404了,导致很多记录没有记录地址,虽然淘宝这个api的位置很全精确到市县级,但是404的次数太多,并不实用。
淘宝API
缺点:

1.有时候调用速度很快,但是有时候回超过30秒而导致服务器报错,终结页面的运行

<?php
$ip = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$_GET["ip"]);
$ip = json_decode($ip,true);
?>

结果是返回JSON格式的如下

在这里插入图片描述
腾讯API
缺点:好像用户试用WIFI情况下定位不准确或者不会有返回数据

http://ip.taobao.com/service/getIpInfo.php?ip=IP

结果是返回JSON格式(别人告诉的,我测试并不好使)
搜狐API
缺点:

1.不能使用特定IP来查询,只能使用API原本查询的IP

2.在服务器测试中,API直接查询出了服务器的IP,并不是用户的IP

(这两个缺点感觉是我写代码的问题,但是我不知道怎么解,如果有大神解决了麻烦告诉我一下怎么解,谢谢)

搜狐IP地址查询接口(默认GBK):http://pv.sohu.com/cityjson
搜狐IP地址查询接口(可设置编码):http://pv.sohu.com/cityjson?ie=utf-8
搜狐另外的IP地址查询接口:http://txt.go.sohu.com/ip/soip

第一个和第二个分别是不同编码的API,返回结果如下

在这里插入图片描述
第三个API虽然有结果原谅我小白看不懂怎么使用,返回结果如下

在这里插入图片描述
126API
缺点:返回格式有点问题,不是UTF-8格式,转格式也失败

126API:http://ip.ws.126.net/ipquery?ip=IP

返回结果如下

在这里插入图片描述
由此可见以上API虽然都能搜寻出来所在地理位置,但是不精确,而且格式很乱,不易于使用,最后给大家推荐一款功能强大而且实用的api,那就是

太平洋API

这个API很强大:http://whois.pconline.com.cn

详细的看一下里面的说明吧!
我采用的是
http://whois.pconline.com.cn/ipJson.jsp?callback=testJson&ip=IP
这个链接;
这是返参:定位很明确。
在这里插入图片描述
给大家付上代码:

private static String readAll(Reader rd) throws IOException {StringBuilder sb = new StringBuilder();int cp;while ((cp = rd.read()) != -1) {sb.append((char) cp);}return sb.toString();}
public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {InputStream is = new URL(url).openStream();try {BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("gbk")));String jsonText = readAll(rd);jsonText = jsonText.replace("if(window.testJson)","");jsonText = jsonText.substring(21);jsonText = jsonText.substring(0,jsonText.length()-10);JSONObject json = new JSONObject(jsonText);return json;} finally {is.close();// System.out.println("同时 从这里也能看出 即便return了,仍然会执行finally的!");}}
public static void main(String[] args) {JSONObject json = readJsonFromUrl("http://whois.pconline.com.cn/ipJson.jsp?callback=testJson&ip="+ip);System.out.println(json.toString());System.out.println(json.get("addr"));}

最后直接获取addr这个值就可以了.


http://chatgpt.dhexx.cn/article/UHK6BHc7.shtml

相关文章

IP属地信息哪里来的?手把手教你实现通过IP查询属地信息

本文主要讲解IP查询属地信息的实现方法&#xff0c;以及基于Spring Boot实现IP属地信息查询项目。 〇、前言 近日&#xff0c;多个网络公众平台纷纷公开显示用户的IP属地&#xff0c;并且用户无法开启或关闭此功能。 用户的IP信息&#xff0c;平台是怎么知道的&#xff1f; …

php 精准定位到街道,ip地址查询精确到街道_ip查询详细地址带地图

ip地址查询精确的位置方法,我们知道,QQ能够查询到i地址对于的用户的位置,但是有时候因为运营商等原因导致 2.查询非移动网络3G/4G的IP地址;这是因为移动3G/4G网络下所使用的公网IP属于多人共用可以定位到街道级别。 IP定位工具(精准到.下载地址:http://pan.baidu.com/s/1o7…

IP地理位置定位技术原理是什么

IP地理位置定位技术的原理是基于IP地址的网络通信原理和基础上的。它利用IP地址所包含的一些信息&#xff0c;如网络前缀和地址段&#xff0c;以及ISP的IP地址归属地数据库&#xff0c;来推测IP地址所对应的地理位置。 具体来说&#xff0c;IP地址是由32位二进制数字组成的&…

Golang — 根据IP获取地理位置信息

Golang — 根据IP获取地理位置信息 1 介绍1.1 ip2region1.2 geoip2-golang1.3 总结 2 使用2.1 ip2region2.2 geoip2-golang 1 介绍 1 ip2region 2 geoip2-golang 1.1 ip2region ip2region 是一个离线IP地址定位库和IP定位数据管理框架&#xff0c;10微秒级别的查询效率&…

python通过ip获取地理位置等ip信息

作者讲话&#xff1a;本人是一个菜鸟勿喷本文章仅供娱乐。 ps&#xff1a;以后可以线下挑战了&#xff0c;直接顺着网线找到你&#xff01;哈哈哈 查询IP数据网站 使用结果1 ‘http://freeapi.ipip.net/ip’ 中文网站 使用结果2 ‘http://ip-api.com/json/ip’ 外国网站 实…

如何利用IP地址确定地理位置

近年来&#xff0c;基于IP地址的网络应用层出不穷&#xff0c;主要包括定向广告、社交网络、网络安全、网络服务性能优化、用户位置画像等。 互联网用户的物理位置对于很多不同类型的应用是有不同的用处的。以搜索引擎为首等应用通常会使用用户的位置来自定义对用户请求的响应。…

python根据IP查询地理位置

实现了输入ip地址返回该ip对应的信息。 如图&#xff1a;解释如下&#xff1a; 打开百度&#xff0c;输入ip打开调试界面&#xff0c;点击图中3号位置过滤在图中4号框位置输入想要查询的ip&#xff0c;然后点查询依次点击图中5、6&#xff0c;找到timestamp字段&#xff0c;粘…

教你如何使用ip地址进行高精度定位

IP这个概念大部分人都很熟悉了&#xff0c;这里IP的意思不是个人标签&#xff0c;而是IP地址&#xff08;英语&#xff1a;Internet Protocol Address&#xff09;是一种在Internet上的给主机编址的方式&#xff0c;也称为网际协议地址。IP地址是IP协议提供的一种统一的地址格式…

windows访问Ext4磁盘

作者 QQ群&#xff1a;852283276 微信&#xff1a;arm80x86 微信公众号&#xff1a;青儿创客基地 B站&#xff1a;主页 https://space.bilibili.com/208826118 参考 在Windows下读取Ext4分区 推荐一款Windows下读取 Linux文件系统Ext4的最佳软件 Paragon ExtFS api-ms-win-cr…

【Linux】Linux Ext2文件系统

下面以Linux的Ext2为例介绍文件系统的组成。 Ext2采用了分立式目录结构&#xff0c;即一个文件的目录分为目录项和索引节点两个部分。 Ext2的索引节点 在一个实际分立式目录的文件系统中&#xff0c;索引节点&#xff08;inode&#xff09;主要需要两部分内容来支持&#xff…

EXT2文件系统实现原理

目录 一 EXT2文件系统结构概览 2 1.1 EXT2文件系统结构框图 2 1.2 EXT2重要数据结构 3 二 块缓存 6 三 EXT2文件系统挂载 7 3.1 注册ext2文件系统类型 7 3.2 ext2文件系统挂载 7 3.3文件系统操作 9 EXT2文件系统结构概览 1.1 EXT2文…

模拟实现EXT2文件系统

设计EXT2文件系统 实验目的 &#xff08;1&#xff09;掌握文件系统的工作原理 &#xff08;2&#xff09;理解文件系统的主要数据结构 &#xff08;3&#xff09;学习较为复杂的 Linux 下的编程 &#xff08;4&#xff09;了解 EXT2 文件系统的结构 实验内容 设计并实现…

WIN10访问linux分区「ext2fsd」

尝试ext2explore、Paragon ExtFS都不好用&#xff0c;强烈安利ext2fsd&#xff0c;可读写&#xff0c;很强大 转自&#xff1a;https://blog.csdn.net/cruise_h/article/details/12894135 ext2fsd是国人发起的项目&#xff0c;主页 http://www.ext2fsd.com/ 下载&#xff1a;h…

windos读写ext3工具_“ ext2fsd” Windows系统工具,用于读写ext2 / 3/4文件系统

在过去的几天里&#xff0c;我使用定制版本的Bridge Linux来扔Arch Linux. 修改lxdm主题时&#xff0c;我无意间无法进入系统&#xff0c;也无法切换命令行模式&#xff0c;因此我不得不找出Windows系统中是否存在可以读写ext4文件系统的工具. 以前尝试过ext2explore&#xff0…

ext2文件系统

ext2是Linux早期比较流行的文件系统&#xff0c;很多文件系统&#xff08;NTFS、FAT32等&#xff09;的设计都源自于它。只要掌握了ext2文件系统&#xff0c;其他文件系统大同小异。 ext2文件系统的布局如下&#xff1a; 文件系统中存储的最小单位是块&#xff08;Block&#…

文件系统系列专题之 Ext2/3/4

一、Ext概述 EXT是延伸文件系统&#xff08;Extended file system&#xff0c;缩写为 ext或 ext1&#xff09;&#xff0c;也译为扩展文件系统&#xff0c;第 1 个扩展文件系统&#xff08;ext1&#xff09;由 Remy Card 设计&#xff0c;并于 1992 年 4 月引入到 Linux 中。采…

深入理解ext2文件系统

ext&#xff12;文件系统需要考虑哪些因素&#xff1a; 1.最重要的是保证数据的安全性。 2.效率&#xff0c;方便文件的查找读写。 3.文件在磁盘空间占用空间小。 (1)树形目录结构 EXT文件系统采用一个独立的顶级树形目录架构&#xff08;即所有一切都从root根目录开始&…

学习篇 | LINUX 内核的文件系统 -- ext2

引言&#xff1a; 本篇博客中主要讲述的是 LINUX 内核所用的文件系统 —— 第二代扩展文件系统 Ext2&#xff0c;Ext2是数个Linux发行版本的默认文件系统。 百度百科 -- ext2 目录 引言&#xff1a; Ext2 文件系统 磁盘的物理组成 ext2 文件系统的格式 ext2 文件系统目录…

ext2文件系统详解

第一部分磁盘的物理组成 磁盘的基本概念&#xff1a; 扇区为最小的物理存储单位&#xff0c;每个扇区为512字节。 将扇区组成一个圆&#xff0c;那就是柱面&#xff0c;柱面是分区的最小单位。 第一个扇区很重要&#xff0c;里面有硬盘主引导记录&#xff08;Masterbootrecord…