Java 判断 IP 为本地局域网私有地址和公网地址的方法

原创 HuangLongPu     发表于  2021-09-20 12:00       118
原文链接:

IP 地址有公网和私有之分,目前主要有 10.x.x.x/8、172.16.x.x/12 和 192.168.x.x/16 等 IP 段被划分为本地局域网。

Java 判断代码如下:

**
 * Java 判断是否为本地局域网私有 IP 地址
 * @param ip
 * @return
 */
public static boolean isPrivateIpv4(String ip) {
    byte[] addr = IPAddressUtil.textToNumericFormatV4(ip);
    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;
    }
}

友情提示:此代码不包含判断 127.0.0.1,如有需要,可自行拓展或根据实际业务判断场景决定。

相关文章

HuangLongPu
2
1385/2000
文章数
151
阅读量
74903
原创
109
广告
公众号