通过IP查看地址

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunshuo1231/article/details/77131593

接口: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();
    }
}

作为参考使用。

猜你喜欢

转载自blog.csdn.net/sunshuo1231/article/details/77131593