是否可以使用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 *获取当前页面的主机名,并且不会尝试解析它。 –