Разрешение ip-адреса имени хоста

У меня есть IP-адрес DNS-сервера и имя хоста.

Использование Java, как я могу найти IP-адрес имени хоста, возвращенный этим DNS-сервером, используя IP-адрес и имя хоста?

Ответ 1

Посмотрите InetAddress и getHostAddress().

InetAddress address = InetAddress.getByName("www.example.com"); 
System.out.println(address.getHostAddress()); 

Ответ 2

Вы можете сделать это следующим образом:

for(InetAddress addr : InetAddress.getAllByName("stackoverflow.com"))
    System.out.println(addr.getHostAddress());

Ответ 3

Для этого вы можете использовать InetAddress. Попробуйте приведенный ниже код,

InetAddress address = InetAddress.getByName("www.yahoo.com");
System.out.println(address.getHostAddress());
System.out.println(address.getHostName());

Ответ 4

Как указано выше, вы можете использовать InetAddress.getByName("hostName"), но это может дать вам кешированный IP-адрес. Прочитайте документацию java для этого же. Если вы хотите получить IP-адрес из DNS, вы можете использовать:

InetAddress[] ipAddress = DNSNameService.lookupAllHostAddr("hostName");

Ответ 5

В дополнение к тому, что указал @daksh, вы можете отключить кеш-ответ DNS, предложенный здесь, но помните о времени отключения кеш, а также кэширование DNS-ответов, сделанных вашей ОС, а также других DNS-серверов, предложенных здесь. Надеюсь, что это поможет