O exemplo neste artigo descreve como Java determina se um endereço IP é um IP de intranet ou um IP público. Compartilhe com todos para sua referência. A análise específica é a seguinte:
No protocolo TCP/IP, três áreas de endereços IP são especialmente reservadas como endereços privados. Os intervalos de endereços são os seguintes:
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
Então, vamos direto ao código:
Copie o código da seguinte maneira: public static boolean internalIp(String ip) {
byte[] addr = IPAddressUtil.textToNumericFormatV4(ip);
return internalIp(endereço);
}
public static boolean internalIp(byte[] endereço) {
byte final b0 = endereço[0];
byte final b1 = endereço[1];
//10.xxx/8
byte final SECTION_1 = 0x0A;
//172.16.xx/12
byte final SECTION_2 = (byte) 0xAC;
byte final SECTION_3 = (byte) 0x10;
byte final SECTION_4 = (byte) 0x1F;
//192.168.xx/16
byte final SECTION_5 = (byte) 0xC0;
byte final SECTION_6 = (byte) 0xA8;
mudar (b0) {
caso SECÇÃO_1:
retornar verdadeiro;
caso SEÇÃO_2:
if (b1 >= SEÇÃO_3 && b1 <= SEÇÃO_4) {
retornar verdadeiro;
}
caso SEÇÃO_5:
interruptor (b1) {
caso SEÇÃO_6:
retornar verdadeiro;
}
padrão:
retornar falso;
}
}
Espero que este artigo seja útil para a programação Java de todos.