前言:

我们现在需要做的功能是根据ip地址获取当前地理位置,是Web 服务API,获取后的位置信息一般是城市级别的,不是很精确的那种获取。

(1)开发者需要做的准备工作:

需要登录百度地图的api,点击web 服务API.

请求的URL 有俩个,

http://api.map.baidu.com/location/ip?ak=您的AK&ip=您的IP&coor=bd09ll //HTTP协议

https://api.map.baidu.com/location/ip?ak=您的AK&ip=您的IP&coor=bd09ll //HTTPS协议

请求的参数

其中需要注意的是: ak 是必填的,其他几个参数可选。

(2)如何申请AK

首先需要点到我的应用里面,新建应用,我这下面是已经建好了。

点击确定即可。

需要注意的是:ip白名单不建议使用 0.0.0.0/0  可以使用具体的ip名称。

(3)代码调用

获取到的json 我把他复制出来,看一下怎么解析这个json.  我这里用的是阿里巴巴下的jsonObject ,所以需要引用jar 包。

{

"address": "CN|上海|上海|None|CHINANET|0|0",

"content": {

"address_detail": {

"province": "上海市",

"city": "上海市",

"street": "",

"district": "",

"street_number": "",

"city_code": 289

},

"address": "上海市",

"point": {

"x": "13524118.26",

"y": "3642780.37"

}

},

"status": 0

}

(4)代码

package com.bos.test;

import com.alibaba.fastjson.JSONObject;

import com.bos.util.SendRequest;

public class MenuTest {

public static void main(String[] args) {

String url = "http://api.map.baidu.com/location/ip?&ak=lGhonqkkoUGZurajdlpL1QqciA215kkq";

JSONObject jsonObject = SendRequest.sendGet2(url);

System.out.println(jsonObject);

//获取content中的值

JSONObject contentJsonObject = jsonObject.getJSONObject("content");

System.out.println("contentJsonObject-------"+contentJsonObject);

//获取详细地址数据

JSONObject addressDetailJsonObject = contentJsonObject.getJSONObject("address_detail");

String address = addressDetailJsonObject.getString("province");

String city = addressDetailJsonObject.getString("city");

System.out.println("address_detail-------"+addressDetailJsonObject);

System.out.println("address-------"+address);

System.out.println("city-------"+city);

String address2 = contentJsonObject.getString("address");

System.out.println("address2-----"+address2);

JSONObject pointJsonObject = contentJsonObject.getJSONObject("point");

String x = pointJsonObject.getString("x");

String y = pointJsonObject.getString("y");

System.out.println("x----"+x);

System.out.println("y----"+y);

}

}

/**

* 发送get 请求,比如定时任务调用的就是请求

* @param url

* @return

*/

public static JSONObject sendGet2(String url) {

JSONObject jsonObject = null;

StringBuffer sb = new StringBuffer();

BufferedReader in = null;

try {

String urlName = url;

URL realUrl = new URL(urlName);

// 打开和URL之间的连接

URLConnection conn = realUrl.openConnection();

// 设置通用的请求属性

conn.setRequestProperty("accept", "*/*");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");

conn.setConnectTimeout(10000);

// 建立实际的连接

conn.connect();

// 定义BufferedReader输入流来读取URL的响应

in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));

String line;

while ((line = in.readLine()) != null) {

sb.append(line);

}

jsonObject = JSON.parseObject(sb.toString());

} catch (Exception e) {

System.out.println("发送GET请求出现异常!" + e);

// 使用finally块来关闭输入流

} finally {

try {

if (in != null) {

in.close();

}

} catch (IOException ex) {

System.out.println("关闭流异常");

}

}

return jsonObject;

}

做到上面其实就可以了,但是如果调用次数太多的话也会报异常。这个时候就需要申请开发者资质认证,我这边先申请一下个人开发者。

番外加赠:

上面的文档可以获取到当前城市的中心点,比如我在上海 ,获取的就是上海市等。 如果想要精确信息,可以根据返回的经纬度做一步查询。

其中需要注意的就是要查询自己是否有逆地理编码权限,具体操作图在下面。、

查询应用是否有逆地理编码的权限。像我的话,没有,点击申请权限。

点击申请权限往下做下去,我这边就不做了

python 通过ip获取城市_如何根据普通ip地址获取当前地理位置相关推荐

  1. python 通过ip获取城市_python中通过客户端IP拿到所在城市和当地天气信息—附带项目案例...

    首先,需求分析: 1.拿到客户端IP 2.通过IP拿到客户端所在地区 3.通过地区拿到当地天气 4.整合功能,展示给用户 第一步,如何拿到用户IP 我们以Django环境为例 # 客户端的请求,IP信 ...

  2. reactnative 获取定位_【React Native】定位获取经纬度,当前城市等地址信息

    最近做React Native时,需要用到城市定位的功能,React Native中文网的定位部分中也提供了相应的方法.主要用到的方法有: 这里只需要获取到经纬度,城市等信息,持续监听的函数就不需要了 ...

  3. 可爱的Python(哲思社区.插图版_文字版).pdf 下载地址

    下载地址: 可爱的Python(哲思社区.插图版_文字版).pdf 资源来自网络,如有侵权,请联系删除!

  4. 佳博ip修改工具_如何修改设备IP,换IP来组建网络

    在工作中我们经常会遇到修改设备IP来组建网络的情况,其实是分几种情况的,接下来IP海小编给大家介绍一下. 1:知道设备的IP IP海代理软件工程师表示,直接用一台笔记本直连这台设备,保证笔记本的网段和 ...

  5. php基于新浪ip库获取城市,PHP基于新浪IP库获取IP详细地址的方法

    [导读]这篇文章主要介绍了PHP基于新浪IP库获取IP详细地址的方法,涉及php正则.curl及编码转换相关操作技巧 本文实例讲述了PHP基于新浪IP库获取IP详细地址的方法.代码如下<?php ...

  6. 台式电脑怎么改计算机名,台式电脑ip怎么设置_台式电脑手动设置ip的方法-系统城...

    ip是电脑的标识,一般电脑的ip地址都是默认自动获取的.但有时因为某些原因我们需要重新设置ip,所以有些不熟悉的用户就问小编台式电脑ip怎么设置呢?对于这一问题,今天小编就来教大家关于台式电脑手动设置 ...

  7. 字符串url获取参数_如何从URL查询字符串获取示例参数或将其附加到URL查询字符串(示例)?...

    字符串url获取参数 让我们剖析几个简单的用例,并查看视图参数的工作原理(视图参数名称不是强制性的,以匹配通过URL查询字符串传递的请求参数,但在本文中,我们将重点讨论这种情况): 情况1 在inde ...

  8. gettype获取类名_在TypeScript中运行时获取对象的类名

    在TypeScript中运行时获取对象的类名 是否可以使用typescript在运行时获取对象的类/类型名称? class MyClass{} var instance = new MyClass() ...

  9. 公网ip和私网ip的区别_自带公网IP上阿里云

    导读:近日,在阿里云"企业出海全球化网络新品发布会"上,阿里云洛神云网络团队宣布弹性公网IP产品全面升级,推出自带IP上云解决方案(以下简称BYOIP上云方案). 作者 | 暁逸 ...

最新文章

  1. php图片发送另一台,phpcurl发送图片处理
  2. MySQL高级 之 explain执行计划详解
  3. 通过反射将变量值转为变量名本身
  4. androidstudio带pom的上传到jcenter_输送机@网带输送机@304网带输送机@304不锈钢网带输送机@输送机网带厂家定制...
  5. c语言水仙花数(输入判断),用c语言判断一个数是否为水仙花数?
  6. html图片怎么设置行高,html行高怎么设置
  7. 一起学Windows Phone7开发(十四.一 Phone Task)
  8. OpenSceneGraph FAQ
  9. iMac电脑启动ideal跑Java项目报错(Class JavaLaunchHelper is implemented in both...One of the two will be used.)
  10. 【控制理论】预测控制分析
  11. AppStore下载数据查看
  12. ios ipa分析之 .dSYM 文件、.xcarchive 文件和 Link Map 文件的Mac版本分析工具:MKAppTool
  13. 永不熄灭的火花·《煎饼侠》
  14. vue啦啦啦啦啦啦啦啦
  15. 简体字与繁体字互相转换
  16. 防止按钮在短时间内被多次点击多次触发事件
  17. 安卓逆向-修改APK-战斗直接胜利
  18. 0x00000124蓝屏问题解决方法
  19. Macbook 苹果电脑 安装搭建Vue脚手架教程m1芯片Vue脚手架初学
  20. 用spark分析北京积分落户数据,按用户身份证所在省份城市分析

热门文章

  1. RabbitMQ指南(三) 队列
  2. 查看飞信隐身是可以做到的。而且很简单。
  3. 渡一教育公开课web前端开发JavaScript精英课学习笔记(二十六)JavaScript 打砖块
  4. 多层感知机+代码实现
  5. DDT数据驱动基本应用
  6. 一篇搞懂ddt数据驱动测试
  7. ICLR 2021杰出论文奖公布,DeepMind是最大赢家
  8. 等保三级都需要哪些安全产品?都有哪些作用?
  9. 突发奇想之 Planning Trajectory
  10. android 5.1 正在运行,android5.1在x86上运行稳定吗