java获取本机IP归属地的方式

1. 方式一:

        如果你可以拿到你的外网IP。

        可以使用淘宝接口"http://ip.taobao.com/service/getIpInfo.php?ip=",地址后面跟上你的IP即可查询出来。相似的接口还有新浪和腾讯的,可以网上搜到。

        上面接口返回数据:

{
    "code":0,
    "data":{
    "ip":"你的IP","country":"中国","area":"","region":"省份",
    "city":"城 市","county":"XX","isp":"运营商",
    "country_id":"CN","area_id":"","region_id":"省份ID","city_id":"城市ID",
    "county_id":"xx","isp_id":"运营商编号"}
}

        获取本机或其他IP地址的归属地也可以使用接口"http://whois.pconline.com.cn/ipJson.jsp?ip={你要查询的IP地址}&json=true",返回格式:

{"ip":"58.112.208.119","pro":"","proCode":"999999","city":"","cityCode":"0","region":"","regionCode":"0","addr":" 日本","regionNames":"","err":"noprovince"}

2. 方式二:

        如果你想直接查询本机的IP和归属地。

        实现思路

        现在都有查询归属地的网站,我们访问那个网站,会返回一个页面,上面会有IP信息和归属地,然后再截取一下关键数据即可得到想要的东西了;

        实现例子

        以"http://www.ip138.com/"为例,相似的网站还有"https://ip.cn/"等网站,但是截取方式不通用。

    public static void main( String[] args ) {
        HttpRequest request = HttpUtil.createGet("http://2019.ip138.com/ic.asp");
        HttpResponse response = request.execute();
        String str = response.body();
        String regex = "<center>(.*?)</center>";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(str);
		while(matcher.find()) {
			System.out.println(matcher.group(1));
		}
    }

        上面代码打印出来

您的IP是:[11.22.33.44] 来自:湖南省长沙市 电信

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值