Вам не нужна библиотека DNS только для поиска IP-адреса. Вы можете просто использовать JNDI :
Properties env = new Properties();
env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.dns.DnsContextFactory");
env.setProperty(Context.PROVIDER_URL, "dns://8.8.8.8");
DirContext context = new InitialDirContext(env);
Attributes list = context.getAttributes("stackoverflow.com",
new String[] { "A" });
NamingEnumeration<? extends Attribute> records = list.getAll();
while (records.hasMore()) {
Attribute record = records.next();
String name = record.get().toString();
System.out.println(name);
}
Если вы настаиваете на использовании библиотеки dnsjava, вам нужно использовать Type.A
(как изначально делал ваш код перед редактированием).
Глядя на документацию для класса Record , обратите внимание на длинный список в разделе Прямые известные подклассы . Вам необходимо привести каждую запись к соответствующему подклассу, который в данном случае равен ARecord .
После того, как вы сделали это приведение, у вас есть дополнительный метод, getAddress :
for (int i = 0; i < records.length; i++) {
ARecord r = (ARecord) records[i];
System.out.println(r.getName() + "," + r.getAdditionalName()
+ " => " + r.getAddress());
}