从IP地址获取地理位置

3
有可能重复:
Java中获取地理位置的最佳方式 在Java中是否可以通过IP地址获取经度和纬度值?如果可以,请告诉我。实际上,我正在开发一个Android应用程序,该应用程序将基于用户的IP地址跟踪用户。如果我拥有经纬度值,则可以轻松使用Google地图在Android中获取用户位置,但主要任务是从IP地址获取经纬度。如果有任何想法,请告诉我。提前感谢您的帮助。

1
我相信这个问题以前已经被问过了。请尝试使用搜索功能,看看是否已经找到答案。 - SnareChops
1
@Minav Patel:请查看以下链接:https://dev59.com/GnM_5IYBdhLWcg3wWRsF,http://stackoverflow.com/questions/2257170/how-to-get-city-name-based-on-ip-address-in-java,http://www.javaquery.com/2011/10/geolocation-javaquery-api.html。 - Cindrella
3个回答

1

有几个 Web 服务可以从 IP 地址提供纬度和经度值,其中之一是 api.ipinfodb.com。例如,您可以通过发送请求来获取纬度和经度:

http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&ip=74.125.45.100&format=json

这将以JSON格式返回数据。(您需要注册以获取API密钥)。

或者您可以从以下链接下载数据库,

http://dev.maxmind.com/geoip/geolite

http://dev.maxmind.com/geoip/downloadable

您可以下载数据集,但必须不断更新。


1

此API以XML格式返回IP地址的位置(国家、地区、城市、邮政编码、纬度、经度)和相关时区。

尽管基于IP的位置检测确实存在许多缺点。

获取Android中wifi IP的位置


0

我认为您可以通过IP地址获取位置,但那只会给您网络服务提供商的区域,而不是实际位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接