사용자가 제출 한 주소가 유효한 공용 IP (비 루프백, 비 로컬, 비 예약)인지 확인하고 싶습니다.주어진 ip가 공개 된 것인지 테스트하십시오.
그 목적을 위해, 나는 그 방법을 생각해 냈습니다. 그러나 이것이 충분한 지 또는 몇 가지 검사가 빠졌는지 궁금합니다.
는 자바 대답private boolean isValidPublicIp(String ip) {
try
{
Inet4Address address = (Inet4Address) InetAddress.getByAddress(ip.getBytes());
if (!address.isSiteLocalAddress() && !address.isAnyLocalAddress() && !address.isLinkLocalAddress() && !address.isLoopbackAddress() && !address.isMulticastAddress()) {
return true;
}
}
catch (UnknownHostException exception) {}
return false;
}