zoukankan      html  css  js  c++  java
  • 根据ip地址获取用户所在地

    java代码:

    package com.henu.controller;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.Reader;
    import java.net.URL;
    import java.nio.charset.Charset;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    /**
     * java根据url获取json对象
     * 
     * @author dxy
     * @since 2017-9-15 需要添加java-json.jar才能运行
     */
    public class GetPlaceByIp {
    
        private static String readAll(Reader rd) throws IOException {
            StringBuilder sb = new StringBuilder();
            int cp;
            while ((cp = rd.read()) != -1) {
                sb.append((char) cp);
            }
            return sb.toString();
        }
    
        public static JSONObject readJsonFromUrl(String url) throws IOException,
                JSONException {
            InputStream is = new URL(url).openStream();
            try {
                BufferedReader rd = new BufferedReader(new InputStreamReader(is,
                        Charset.forName("UTF-8")));
                String jsonText = readAll(rd);
                JSONObject json = new JSONObject(jsonText);
                return json;
            } finally {
                is.close();
                // System.out.println("同时 从这里也能看出 即便return了,仍然会执行finally的!");
            }
        }
    
        public static void main(String[] args) throws IOException, JSONException {
            // 这里调用百度的ip定位api服务 详见
            // http://api.map.baidu.com/lbsapi/cloud/ip-location-api.htm
            JSONObject json = readJsonFromUrl("http://api.map.baidu.com/location/ip?ak=F454f8a5efe5e577997931cc01de3974&ip=218.28.192.38");
            System.out.println(json.toString());
            System.out.println(((JSONObject) json.get("content")).get("address"));
        }
    }

    控制台输出:

    {"content":{"point":{"y":"4106269.36","x":"12651558.14"},"address":"河南省郑州市","address_detail":{"street":"","province":"河南省","city_code":268,"street_number":"","district":"","city":"郑州市"}},"status":0,"address":"CN|河南|郑州|None|UNICOM|0|0"}
    河南省郑州市
  • 相关阅读:
    Python 循环语句
    Python if、elif 、else语句 与 布尔运算
    Python 运算符
    Python 标识符
    Python 常用数据类型(整数,浮点数,复数,布尔型)
    Python 编辑器内容
    Python 语言介绍
    vscode 最新中文设置
    漫画数据库_基础和设计数据库
    linux配置服务器
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/7527007.html
Copyright © 2011-2022 走看看