通过IP查看地址

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

作为参考使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值