我可以使用客户端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来读取它。