通过IP查看地址

来源:互联网 发布:js des加密解密 代码 编辑:程序博客网 时间:2024/04/28 16:29

接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=
反回的JSON字符串,所以需要JSONUtil工具类:
需要的jar包:jackson-annotations-2.4.2.jar,jackson-core-2.4.2.jar,jackson-databind-2.3.1.jar,只写了JSON转map和javabean、list转json。

public class JSONUtil {    public static ObjectMapper objectMapper = new ObjectMapper();    /**     * javaBean,list,array convert to json string     * @param obj     * @return     * @throws Exception     */    public static String obj2json(Object obj) throws Exception {        return objectMapper.writeValueAsString(obj);    }    public static Map<String, String> json2map(            String jsonStr) throws Exception {        return objectMapper.readValue(jsonStr, Map.class);    }}

实现:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.util.Map;/** * <p>类说明:</p> * @author 作者:孙硕 * @version 时间:2017年8月12日 下午11:27:31 */public class FromIpGetAddrDemo {    public static void main(String[] args) throws Exception {        String result = getAddrByIP("175.190.0.12");        Map<String, String> map = JSONUtil.json2map(result);        String country = map.get("country");        String province = map.get("province");        String city = map.get("city");        System.out.println(country + "-" + province + "-" + city);    }    public static String getAddrByIP(String ipstr) {        StringBuffer result = new StringBuffer();        try {            URL url = new URL(                    "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip="                            + ipstr);            URLConnection conn = url.openConnection();            BufferedReader reader = new BufferedReader(                    new InputStreamReader(conn.getInputStream(), "utf-8"));            String line = null;            while ((line = reader.readLine()) != null) {                result.append(line);            }            reader.close();        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return result.toString();    }}

作为参考使用。