この記事の例では、Java が IP アドレスがイントラネット IP であるかパブリック IP であるかを判断する方法について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
TCP/IP プロトコルでは、3 つの 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 innerIp(String ip) {
byte[] addr = IPAddressUtil.textToNumericFormatV4(ip);
内部Ip(アドレス)を返します;
}
public static boolean innerIp(byte[] addr) {
最終バイト b0 = addr[0];
最終バイト b1 = addr[1];
//10.xxx/8
最終バイト SECTION_1 = 0x0A;
//172.16.xx/12
最終バイト SECTION_2 = (バイト) 0xAC;
最終バイト SECTION_3 = (バイト) 0x10;
最終バイト SECTION_4 = (バイト) 0x1F;
//192.168.xx/16
最終バイト SECTION_5 = (バイト) 0xC0;
最終バイト SECTION_6 = (バイト) 0xA8;
スイッチ (b0) {
ケース SECTION_1:
true を返します。
ケース SECTION_2:
if (b1 >= SECTION_3 && b1 <= SECTION_4) {
true を返します。
}
ケース SECTION_5:
スイッチ (b1) {
ケース SECTION_6:
true を返します。
}
デフォルト:
false を返します。
}
}
この記事が皆さんの Java プログラミングに役立つことを願っています。