python 通过ip获取城市_如何根据普通ip地址获取当前地理位置
前言:
我们现在需要做的功能是根据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地址获取当前地理位置相关推荐
- python 通过ip获取城市_python中通过客户端IP拿到所在城市和当地天气信息—附带项目案例...
首先,需求分析: 1.拿到客户端IP 2.通过IP拿到客户端所在地区 3.通过地区拿到当地天气 4.整合功能,展示给用户 第一步,如何拿到用户IP 我们以Django环境为例 # 客户端的请求,IP信 ...
- reactnative 获取定位_【React Native】定位获取经纬度,当前城市等地址信息
最近做React Native时,需要用到城市定位的功能,React Native中文网的定位部分中也提供了相应的方法.主要用到的方法有: 这里只需要获取到经纬度,城市等信息,持续监听的函数就不需要了 ...
- 可爱的Python(哲思社区.插图版_文字版).pdf 下载地址
下载地址: 可爱的Python(哲思社区.插图版_文字版).pdf 资源来自网络,如有侵权,请联系删除!
- 佳博ip修改工具_如何修改设备IP,换IP来组建网络
在工作中我们经常会遇到修改设备IP来组建网络的情况,其实是分几种情况的,接下来IP海小编给大家介绍一下. 1:知道设备的IP IP海代理软件工程师表示,直接用一台笔记本直连这台设备,保证笔记本的网段和 ...
- php基于新浪ip库获取城市,PHP基于新浪IP库获取IP详细地址的方法
[导读]这篇文章主要介绍了PHP基于新浪IP库获取IP详细地址的方法,涉及php正则.curl及编码转换相关操作技巧 本文实例讲述了PHP基于新浪IP库获取IP详细地址的方法.代码如下<?php ...
- 台式电脑怎么改计算机名,台式电脑ip怎么设置_台式电脑手动设置ip的方法-系统城...
ip是电脑的标识,一般电脑的ip地址都是默认自动获取的.但有时因为某些原因我们需要重新设置ip,所以有些不熟悉的用户就问小编台式电脑ip怎么设置呢?对于这一问题,今天小编就来教大家关于台式电脑手动设置 ...
- 字符串url获取参数_如何从URL查询字符串获取示例参数或将其附加到URL查询字符串(示例)?...
字符串url获取参数 让我们剖析几个简单的用例,并查看视图参数的工作原理(视图参数名称不是强制性的,以匹配通过URL查询字符串传递的请求参数,但在本文中,我们将重点讨论这种情况): 情况1 在inde ...
- gettype获取类名_在TypeScript中运行时获取对象的类名
在TypeScript中运行时获取对象的类名 是否可以使用typescript在运行时获取对象的类/类型名称? class MyClass{} var instance = new MyClass() ...
- 公网ip和私网ip的区别_自带公网IP上阿里云
导读:近日,在阿里云"企业出海全球化网络新品发布会"上,阿里云洛神云网络团队宣布弹性公网IP产品全面升级,推出自带IP上云解决方案(以下简称BYOIP上云方案). 作者 | 暁逸 ...
最新文章
- php图片发送另一台,phpcurl发送图片处理
- MySQL高级 之 explain执行计划详解
- 通过反射将变量值转为变量名本身
- androidstudio带pom的上传到jcenter_输送机@网带输送机@304网带输送机@304不锈钢网带输送机@输送机网带厂家定制...
- c语言水仙花数(输入判断),用c语言判断一个数是否为水仙花数?
- html图片怎么设置行高,html行高怎么设置
- 一起学Windows Phone7开发(十四.一 Phone Task)
- OpenSceneGraph FAQ
- iMac电脑启动ideal跑Java项目报错(Class JavaLaunchHelper is implemented in both...One of the two will be used.)
- 【控制理论】预测控制分析
- AppStore下载数据查看
- ios ipa分析之 .dSYM 文件、.xcarchive 文件和 Link Map 文件的Mac版本分析工具:MKAppTool
- 永不熄灭的火花·《煎饼侠》
- vue啦啦啦啦啦啦啦啦
- 简体字与繁体字互相转换
- 防止按钮在短时间内被多次点击多次触发事件
- 安卓逆向-修改APK-战斗直接胜利
- 0x00000124蓝屏问题解决方法
- Macbook 苹果电脑 安装搭建Vue脚手架教程m1芯片Vue脚手架初学
- 用spark分析北京积分落户数据,按用户身份证所在省份城市分析