python获取局域网中的ip和mac地址,python 获取地址

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: