Можно ли разрешить имя хоста с помощью Javascript?
Здесь будет гипотетический код:
var hostname = "www.yahoo.com"; var ipAddress = DnsLookup(hostname); console.log(ipAddress);
Я ищу эту магическую DnsLookup() функцию. : -)
DnsLookup()
Хотя в JavaScript нет стандартных функций DNS, вы всегда можете вызвать сторонний публичный API, который выполняет разрешение DNS.
Например, Encloud предоставляет такой API , и выможет сделать XMLHttpRequest для него:
var oReq = new XMLHttpRequest(); oReq.onload = function () { var response = JSON.parse(this.responseText); alert(JSON.stringify(response.dns_entries)); } oReq.open("get", "https://www.enclout.com/api/v1/dns/show.json?auth_token=rN4oqCyJz9v2RRNnQqkx&url=stackoverflow.com", true); oReq.send();
Конечно, вы должны получить свой собственный токен авторизации.Количество бесплатных учетных записей Enclout ограничено 6 запросами в минуту.
Если вы просто хотите получить IP-адрес, сделайте запрос GET для http://api.konvert.me/forward-dns/yourdomain.com.
Нет - javascript заблокирован от выполнения междоменных запросов. Потенциально могут быть некоторые хаки, которые могут вам помочь ( этот выглядел довольно многообещающе), но по умолчанию вы не можете этого сделать.
Вы можете запросить что-то и убедиться, что вернули HTTP 200.
Вам нужно будет перезвонить на серверную сторону и разрешить значение оттуда. В Javascript нет стандартной функции поиска DNS.