python获取局域网中的ip和mac地址,python 获取地址
前言:
我们现在需要做的功能是根据互联网协议(互联网协议的缩写)地址获取当前地理位置,是网服务API,获取后的位置信息一般是城市级别的,不是很精确的那种获取。
(1)开发者需要做的准备工作:
需要登录百度地图的api,点击网服务API .
请求的统一资源定位器有俩个,
http://api.map.baidu.com/location/ip?ak=您的AKip=您的IPcoor=bd09ll //HTTP协议
https://api.map.baidu.com/location/ip?ak=您的AKip=您的IPcoor=bd09ll //HTTPS协议
请求的参数
其中需要注意的是:ak是必填的,其他几个参数可选。
(2)如何申请阿拉斯加
首先需要点到我的应用里面,新建应用,我这下面是已经建好了。
点击确定即可。
需要注意的是:ip白名单不建议使用0.0.0.0/0 可以使用具体的互联网协议(互联网协议的缩写)名称。
(3)代码调用
获取到的数据我把他复制出来,看一下怎么解析这个json .我这里用的是阿里巴巴下的jsonObject,所以需要引用冲突包。
{
地址: CN上海上海无CHINANET00 ,
内容:
“地址详细信息”:
省份: 上海市,
城市: 上海市,
街道":",
地区":",
街道编号":",
"城市代码":289
},
地址: 上海市,
点:{
x: 13524118.26 ,
y: 3642780.37
}
},
"状态":0
}
(4)代码
包com。博斯。测试;
导入com。阿里巴巴。快速JSON。JSON对象;
导入com。博斯。util。发送请求;
公共类菜单测试{
公共静态void main(String[] args) {
字符串网址=http://api.map.baidu.com/location/ip?AK=lghonqkkougzurajdlp 1 qqcia 215 kkq ;
JSON对象JSON对象=发送请求。发送get 2(网址);
系统。出去。println(JSON对象);
//获取内容中的值
json对象内容JSON对象=JSON对象。getjson对象( content );
系统。出去。println( contentJsonObject- contentJsonObject);
//获取详细地址数据
JSON对象地址明细JSON对象=contentjson对象。getjson对象( address _ detail );
字符串address=addressdetailjsonobject。getstring(省);
字符串city=addressdetailjsonobject。getstring( city );
系统。出去。println( address _ detail- addressDetailJsonObject);
系统。出去。println(地址-地址);
系统。出去。println( city- city);
字符串地址2=contentjsonobject。getstring(“address”);
系统。出去。println(地址2-地址2);
JSON对象点JSON对象=contentjson对象。getjson对象( point );
string x=pointjsonobject。getstring( x );
string y=pointjsonobject。getstring( y );
系统。出去。println( x- x);
系统。出去。println( y- y);
}
}
/**
* 发送得到请求,比如定时任务调用的就是请求
* @param url
* @返回
*/
公共静态JSONObject sendGet2(字符串url) {
JSONObject jsonObject=null
字符串缓冲区sb=新字符串缓冲区();
BufferedReader in=null
尝试{
字符串urlName=url
URL realUrl=新URL(URL名称);
//打开和统一资源定位器之间的连接
URL连接连接=真实URL。打开连接();
//设置通用的请求属性
conn . setrequestproperty( accept , */* );
conn.setRequestProperty(连接,保持活动);
conn.setRequestProperty(用户代理, Mozilla/4.0(兼容;MSIE 6.0 windows NT 5.1 sv1));
conn . setconnecttimeout(10000);
//建立实际的连接
conn . connect();
//定义类输入流来读取统一资源定位器的响应
in=新缓冲读取器(新输入流读取器(conn . getinputstream(), UTF-8 );
弦线;
while ((line=in.readLine())!=null) {
某人(somebody的简写)追加(行);
}
JSON对象=JSON。解析对象(sb。tostring());
} catch(异常e) {
System.out.println(发送得到请求出现异常!e);
//使用最后块来关闭输入流
}最后{
尝试{
如果(在!=null) {
英寸close();
}
} catch (IOException ex) {
System.out.println(关闭流异常);
}
}
返回对象
}
做到上面其实就可以了,但是如果调用次数太多的话也会报异常。这个时候就需要申请开发者资质认证,我这边先申请一下个人开发者。
番外加赠:
上面的文件可以到当前城市的中心,比如我在上海,我到了上海等等。如果想要准确的信息,可以根据返回的经纬度做进一步的查询。
你需要注意的是检查你是否有反向地理编码的权限。具体操作示意图如下。
查询应用程序是否具有反向地理编码的权限。和我一样,不,点击申请权限。
点击应用权限继续,这里就不做了。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。