是否可以使用Javascript解析主機名?執行DNS查找以使用JavaScript將主機名解析爲IP地址
這裏是假設代碼:
var hostname = "www.yahoo.com";
var ipAddress = DnsLookup(hostname);
console.log(ipAddress);
我要尋找那神奇的DnsLookup()
功能。 :-)
是否可以使用Javascript解析主機名?執行DNS查找以使用JavaScript將主機名解析爲IP地址
這裏是假設代碼:
var hostname = "www.yahoo.com";
var ipAddress = DnsLookup(hostname);
console.log(ipAddress);
我要尋找那神奇的DnsLookup()
功能。 :-)
您需要回調到服務器端並從那裏解析值。 Javascript中沒有標準的DNS查找功能。
雖然沒有在JavaScript中沒有標準的DNS功能,您可以隨時撥打第三方公共API,做DNS解析。
例如,Encloud provides such an 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,請爲http://api.konvert.me/forward-dns/yourdomain.com發出GET請求。
這解決了Enclout服務器上的主機名,而不是運行javascript的機器上的主機名。因此產生的IP可能會有所不同。 – Arthur
@PatrikAlienus:你不明白這個問題。至於[x-nl說](http://stackoverflow.com/questions/7113072/resolve-a-hostname-with-javascript/31500047#comment36968223_7113122),你的評論是「bollocks」。 –
@DanDascalescu我想我上面提到的問題是錯誤的。有一個複選標記和277 upvotes ... –
@PatrikAlienus:OP想要解析*任意主機名*到IP。您鏈接到的答案只從* window.location *獲取當前頁面的主機名,並且不會嘗試解析它。 –