У мене є IP-адреса DNS-сервера та ім’я хосту.
За допомогою Java, як я можу знайти IP-адресу імені хосту, яку повертає цей DNS-сервер, використовуючи IP-адресу та ім'я хосту?
У мене є IP-адреса DNS-сервера та ім’я хосту.
За допомогою Java, як я можу знайти IP-адресу імені хосту, яку повертає цей DNS-сервер, використовуючи IP-адресу та ім'я хосту?
Відповіді:
Погляньте InetAddressі getHostAddress()метод.
InetAddress address = InetAddress.getByName("www.example.com");
System.out.println(address.getHostAddress());
InetAddressповинен отримати адресу DNS, коли ви запитуєте getHostAddress(). Я не впевнений, що ви можете змусити його використовувати певний DNS-сервер.
Ви можете зробити це так:
for(InetAddress addr : InetAddress.getAllByName("stackoverflow.com"))
System.out.println(addr.getHostAddress());
Для цього ви можете використовувати InetAddress. Спробуйте нижченаведений код,
InetAddress address = InetAddress.getByName("www.yahoo.com");
System.out.println(address.getHostAddress());
System.out.println(address.getHostName());
Як пропонується всім вище, ви можете використовувати,
InetAddress.getByName("hostName")але це може дати вам кешований IP-адрес. Прочитайте документацію до Java для того самого. Якщо ви хочете отримати IP-адресу від DNS, ви можете використовувати:
InetAddress[] ipAddress = DNSNameService.lookupAllHostAddr("hostName");
dig <hostname>у командному рядку?