我可以使用客户端Javascript执行DNS查找(从主机名到IP地址)吗?

时间:2020-03-06 14:26:24  来源:igfitidea点击:

我想使用客户端Javascript执行DNS查找(从主机计算机到IP地址的主机名)。那可能吗?

解决方案

我不认为出于安全原因,大多数浏览器都允许在纯JavaScript上下文中使用该问题。

如果客户端安装了Java,则可以执行以下操作:

ipAddress = java.net.InetAddress.getLocalHost().getHostAddress();

除此之外,我们可能必须使用服务器端脚本。

javascript标准库中没有主机或者ip地址的概念。因此,我们必须访问一些外部服务才能为我们查找主机名。

我建议托管一个cgi-bin,它查找主机名的ip地址并通过javascript访问。

这样做将需要破坏浏览器沙箱。尝试让服务器进行查询,并通过XmlHttp从客户端请求该查询。

编辑:这个问题让我感到很头疼,所以我在Google App Engine上放置了一个JSONP网络服务,该服务返回了客户端的IP地址。用法:

<script type="application/javascript">
function getip(json){
  alert(json.ip); // alerts the ip address
}
</script>

<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"> </script>

是的,不需要服务器代理。

纯JS不能。如果服务器脚本在同一域中可以将其打印出来,则可以发送XMLHttpRequest来读取它。