使用WebAssembly获取域的IP地址或发出DNS请求

时间:2018-11-21 02:03:50

标签: javascript browser dns cross-browser webassembly

是否可以使用WebAssembly发出DNS请求或获取域名的IP地址?如果不在网站上,那么通过浏览器插件怎么办?

我已经看到,即使浏览器本身具有该数据,JavaScript也不允许进行DNS请求,甚至无法获取您连接的域的当前IP。

我还看到您可以在Node.js中发出DNS请求,所以我想知道,因为WebAssembly具有与浏览器内JS不同的功能集,它还具有一些服务器端功能来实现以下功能: DNS请求或侦听浏览器的DNS响应?

1 个答案:

答案 0 :(得分:1)

不。 没有专门用于WebAssembly的API。 The MVP spec甚至没有稳定的应用程序API或WebAssembly的内置库(他们正在努力将某些功能添加为MVP后功能)。 WebAssembly二进制文件本身目前仅可以进行纯计算。

目前可以安全地假设所有系统功能都是通过使用Javascript模拟实现的。具体来说,它们是通过importing JS code in to WebAssembly modules完成的。因此,JS引擎无法实现的是WebAssembly无法实现的。

安全是他们的主要关注点。 WebAssembly团队adding more system features的工作重点是线程和SIMD等计算功能,而不是可能会破坏沙箱的专有系统功能。因此,我不希望它们会添加低级访问权限,例如处理DNS请求和在浏览器中公开真实文件系统。