分享2020 几个好用的ip地址归属地查询

ip地址归属地查询接口

一、百度

大公司,不必说,肯定好用,我就一直用的他作为主要查询接口。

url:http://opendata.baidu.com/api.php
params:query=ip,resource_id=6006,format=json

拼接之后url:

http://opendata.baidu.com/api.php?query=48.102.123.25&resource_id=6006&format=json

返回结果示例:
在这里插入图片描述
注意: format是返回结果,支持json,xml,json返回结果中,status=0表示请求成功,但是不表示有数据返回,data集合不为空才表示查询成功

二、太平洋

很好用,备用ip查询

http://whois.pconline.com.cn/ipJson.jsp?ip=xxx.xxx.xxx.xxx&json=true

返回结果示例:
在这里插入图片描述

如果请求的ip为不正确的ip,返回结果是本机ip的外网ip的归属地
更多详情请访问:http://whois.pconline.com.cn/

三、纯真

官网:http://www.cz88.net/

http://ipaddr.cz88.net/data.php?ip=47.102.123.89

返回结果示例:jsonp
在这里插入图片描述
注意: 偶尔会访问错误

非公网ip的ABC类地址

局域网地址范围分三类,以下IP段为内网IP段:
C类:192.168.0.0 - 192.168.255.255
B类:172.16.0.0 - 172.31.255.255
A类:10.0.0.0 - 10.255.255.255
环回地址:127.0.0.0-127.255.255.255

附上Java版本的非公网ip判断代码

	public static boolean isLocalIp(String ip) {
        String prefixA = "10.";
        String prefixB = "172.";
        String prefixC = "192.168.";
        String prefixLH = "127.";
        if (ip.startsWith(prefixC) || ip.startsWith(prefixA)) {
            return true;
        }

        if (ip.startsWith(prefixB)) {
            // 截取 第二个字节
            String str = ip.substring(ip.indexOf(".") + 1);
            int c = Integer.parseInt(str.substring(0, str.indexOf(".")));
            return c > 15 && c < 32;
        }

        return ip.startsWith(prefixLH);
    }

最后正则表达式版本:

	public static boolean isLocalIp(String ip) {
		String pattern = "^192.168.|^10.|^127.|^172.(1[6-9]|2[0-9]|3[0-1]).";
        // 创建 Pattern 对象
        Pattern p = Pattern.compile(pattern);
        // 现在创建 matcher 对象
        return p.matcher(ip).find();
    }

注意:淘宝的api已经炸了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值