이 문서의 예에서는 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 내부Ip(addr);
}
공개 정적 부울 InternalIp(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:
사실을 반환;
사례 SECTION_2:
if (b1 >= SECTION_3 && b1 <= SECTION_4) {
사실을 반환;
}
사례 SECTION_5:
스위치(b1) {
사례 SECTION_6:
사실을 반환;
}
기본:
거짓을 반환;
}
}
이 글이 모든 사람의 Java 프로그래밍에 도움이 되기를 바랍니다.