Не получается запись DNS с использованием org.xbill.DNS lib
Я написал следующий код, чтобы получить запись MX для любого домена, здесь google.com
public class DNSRec {
public static void main(String... args)
{
try{
Record [] records = new Lookup("http://www.google.com", Type.NS).run();
for (int i = 0; i < records.length; i++) {
NSRecord ns = (NSRecord) records[i];
System.out.println("Nameserver " + ns.getTarget());
}
}catch(Exception e){
System.out.println("Exception: "+e.getMessage());
}
}}
Вывод: исключение: ноль
Я использовал org.xbill.DNS lib.
Что не так в коде выше?
Должен ли я использовать эту библиотеку или есть какой-либо другой лучший способ получить записи DNS?
Небольшой пример;) Добро пожаловать:) .,,, Ваш ответ будет высоко оценен
Мое подключение к интернету в порядке.
1 ответ
Здесь две вещи не так:
- Код ищет записи MX и затем пытается привести результат к NSRecord.
- Вы не должны передавать протокол в
Lookup
конструктор класса. Вы выполняете поиск по серверу имен для домена, а не для URL. Следовательно, вы должны использоватьgoogle.com
вместоhttp://www.google.com
Дайте этому попробовать:
public class DNSRec {
public static void main(String... args)
{
try{
Lookup lookup = new Lookup("google.com", Type.NS);
Record[] records = lookup.run();
for (int i = 0; i < records.length; i++) {
NSRecord ns = (NSRecord) records[i];
System.out.println("Nameserver " + ns.getTarget());
}
}catch(Exception e){
System.out.println("Exception: "+e.getMessage());
}
}}