Если в вашем адресе есть двоеточия :
, то это адрес IPv6.Остальные символы могут быть шестнадцатеричными цифрами (0-1, AF, af).
Если адрес содержит только цифры и точки, то это адрес IPv4.
Если в адресе есть какая-либо буква, то этоимя хоста (имя хоста также может содержать цифры, точки и другие символы).
Это может быть просто реализовано как:
public static String kindOfIP(final String addr)
{
if (addr.indexOf(":") >= 0)
return "IPv6";
if (addr.matches("^\\d+\\.\\d+\\.\\d+\\.\\d+$"))
return "IPv4";
return "hostname";
}
Этот код не проверяет, является ли адрес действительным.