Java判断IP地址为内网IP还是公网IP的方法

 更新时间:2015年01月13日 09:09:16   投稿:shichen2014  
这篇文章主要介绍了Java判断IP地址为内网IP还是公网IP的方法,针对tcp/ip协议中保留的三个私有地址进行判断分析,是比较实用的技巧,需要的朋友可以参考下

本文实例讲述了Java判断IP地址为内网IP还是公网IP的方法。分享给大家供大家参考。具体分析如下:

tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:

10.0.0.0/8:10.0.0.0~10.255.255.255
172.16.0.0/12:172.16.0.0~172.31.255.255
192.168.0.0/16:192.168.0.0~192.168.255.255

那么,直接上代码吧:

复制代码 代码如下:
public static boolean internalIp(String ip) {
    byte[] addr = IPAddressUtil.textToNumericFormatV4(ip);
    return internalIp(addr);
}

public static boolean internalIp(byte[] addr) {
    final byte b0 = addr[0];
    final byte b1 = addr[1];
    //10.x.x.x/8
    final byte SECTION_1 = 0x0A;
    //172.16.x.x/12
    final byte SECTION_2 = (byte) 0xAC;
    final byte SECTION_3 = (byte) 0x10;
    final byte SECTION_4 = (byte) 0x1F;
    //192.168.x.x/16
    final byte SECTION_5 = (byte) 0xC0;
    final byte SECTION_6 = (byte) 0xA8;
    switch (b0) {
        case SECTION_1:
            return true;
        case SECTION_2:
            if (b1 >= SECTION_3 && b1 <= SECTION_4) {
                return true;
            }
        case SECTION_5:
            switch (b1) {
                case SECTION_6:
                    return true;
            }
        default:
            return false;
    }
}

希望本文所述对大家的Java程序设计有所帮助。

相关文章

  • java poi读取excel操作示例(2个代码)

    java poi读取excel操作示例(2个代码)

    这篇文章主要介绍了使用POI读取EXCEL文件的方法,代码大家可以参考使用
    2013-12-12
  • Java对象类型的判断详解

    Java对象类型的判断详解

    这篇文章主要介绍了Java对象类型的判断,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Springboot3整合Mybatis-plus3.5.3报错问题解决

    Springboot3整合Mybatis-plus3.5.3报错问题解决

    在日常学习springboot3相关的代码时,在使用 SpringBoot3 整合 MyBatisplus 时出现了一些问题,花了不少时间处理,这篇文章主要介绍了Springboot3整合Mybatis-plus3.5.3报错问题解决,需要的朋友可以参考下
    2023-11-11
  • Java反射机制的学习总结

    Java反射机制的学习总结

    总的来说,java反射机制是一个很好用的东西,用它可以解决很多死的东西,因为反射机制的灵活行很大,有了他,我们就不要花太多的时间来写操做数据库的代码了,而是方法更多的时间在项目的逻辑功能上,这个可以很大的减少开发时间,而且代码的可读性好
    2013-09-09
  • java中SpringBoot 自动装配的原理分析

    java中SpringBoot 自动装配的原理分析

    这篇文章主要介绍了SpringBoot 自动装配的原理分析的相关资料,需要的朋友可以参考下
    2022-12-12
  • Java各种排序算法汇总(冒泡,选择,归并,希尔及堆排序等)

    Java各种排序算法汇总(冒泡,选择,归并,希尔及堆排序等)

    这篇文章主要介绍了Java各种排序算法,以大量实例形式汇总分析了Java常用的各种排序算法,包括冒泡排序、快速排序、堆排序、插入排序、希尔排序、选择排序、归并排序等,需要的朋友可以参考下
    2015-11-11
  • mybatis中insert主键ID获取和多参数传递的示例代码

    mybatis中insert主键ID获取和多参数传递的示例代码

    这篇文章主要介绍了mybatis中insert主键ID获取和多参数传递的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Spring Boot实现邮件服务(附:常见邮箱的配置)

    Spring Boot实现邮件服务(附:常见邮箱的配置)

    这篇文章主要给大家介绍了关于Spring Boot实现邮件服务的相关资料,文中还附上了常见邮箱的配置,通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 模拟打印机排队打印效果

    模拟打印机排队打印效果

    本节主要介绍了模拟打印机排队打印效果的具体实现,感兴趣的朋友可以参考下
    2014-07-07
  • java连接ElasticSearch集群操作

    java连接ElasticSearch集群操作

    这篇文章主要介绍了java连接ElasticSearch集群操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09

最新评论