Java获取请求IP的地址

    public static IPInfo getIpInfo(String ip) {
        String jsonContent = null;
        IPInfo ipInfo = new IPInfo();
        try {
            //jsonContent = getJsonContent("http://ip.taobao.com/service/getIpInfo.php?ip=" + ip); 此接口已失效
            jsonContent = getJsonContent("https://ipw.cn/api/ip/query?ip=" + ip);
            // 获取到数据则继续解析
            JSONObject jsonObject = JSONObject.parseObject(jsonContent);
            Boolean b = jsonObject.getBoolean("result");
            if(b){
                JSONObject address = jsonObject.getJSONObject("Address");
                ipInfo.setCountry(address.getString("Country"));
                ipInfo.setIp(jsonObject.getString("IP"));
                ipInfo.setIsp(jsonObject.getString("ISP"));
                ipInfo.setCity(address.getString("City"));
                ipInfo.setRegion(address.getString("Province"));
            }else{
                ipInfo = getIpInfo();
            }
        } catch (Exception e) {
            e.printStackTrace();
            return getIpInfo();
        }
        return ipInfo;


//        if (Objects.nonNull(jsonObject) && Objects.equals(jsonObject.getString("result"), true)) {
//            JSONObject data = jsonObject.getJSONObject("data");
//            IPInfo ipInfo = JSONObject.toJavaObject(data, IPInfo.class);
//
//        }

    }

IPInfo.java

@Data
public class IPInfo {
    @JSONField(name = "ip")
    private String ip;
    @JSONField(name = "country")
    private String country;
    @JSONField(name = "area")
    private String area;
    @JSONField(name = "region")
    private String region;
    @JSONField(name = "city")
    private String city;
    @JSONField(name = "county")
    private String county;
    @JSONField(name = "isp")
    private String isp;
    @JSONField(name = "country_id")
    private String countryId;
    @JSONField(name = "area_id")
    private String areaId;
    @JSONField(name = "region_id")
    private String regionId;
    @JSONField(name = "city_id")
    private String cityId;
    @JSONField(name = "county_id")
    private String countyId;
    @JSONField(name = "isp_id")
    private String ispId;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值