如何从 VueJS 应用程序 ping 一个 IP 地址?

How to ping an IP address from a VueJS application?

在 VueJS 应用程序上工作,我想创建一个函数来 ping 一个特定的 IP 地址和 returns 时间和状态。

1- 我使用了 ping-lite,但出现了这个错误:Could not detect your ping binary.。 我看到在节点模块中,他们正在检查机器 OS(Windows 和 WSL 上的 运行),如果失败则抛出该错误。

2- 然后我尝试了 ping,但出现了这个错误:

(Promise/async): "TypeError: net.isIPv6 is not a function"

我试图从他们的 npm/github 页面执行示例代码:

var ping = require('ping');
    
var hosts = ['192.168.1.1', 'google.com', 'yahoo.com'];
    
for(let host of hosts){
       let res = await ping.promise.probe(host);
       console.log(res);
   }

我想知道这些问题是否相关,是否与我的environment/machine有关。

如何解决这个问题,或者从 Vue 应用程序 ping IP 地址的最佳方法是什么?

Ping 是浏览器不支持的 node.js 模块。该模块需要 运行 服务器端。

这可以通过 axios 来完成,您可以在其中向 url 发出 GET 调用,如果返回 200,则表示调用成功。这也可以使用 $ajax.

来完成

axios 示例

const response = await axios.get('https://api.github.com/users/mapbox');

if (response.status === 200) {
  console.log('success'
}