В примере в этой статье описывается, как 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) {
байт [] адрес = IPAddressUtil.textToNumericFormatV4 (ip);
вернуть внутренний IP (адрес);
}
public static boolean InternalIp(byte[] addr) {
последний байт b0 = адрес[0];
последний байт b1 = адрес[1];
//10.ххх/8
последний байт SECTION_1 = 0x0A;
//172.16.xx/12
последний байт SECTION_2 = (байт) 0xAC;
последний байт РАЗДЕЛ_3 = (байт) 0x10;
последний байт SECTION_4 = (байт) 0x1F;
//192.168.хх/16
последний байт SECTION_5 = (байт) 0xC0;
последний байт SECTION_6 = (байт) 0xA8;
переключатель (b0) {
случай РАЗДЕЛ_1:
вернуть истину;
случай РАЗДЕЛ_2:
if (b1 >= РАЗДЕЛ_3 && b1 <= РАЗДЕЛ_4) {
вернуть истину;
}
дело РАЗДЕЛ_5:
переключатель (b1) {
дело РАЗДЕЛ_6:
вернуть истину;
}
по умолчанию:
вернуть ложь;
}
}
Я надеюсь, что эта статья будет полезна каждому, кто занимается программированием на Java.