如何在js或节点js中ping ip [重复]

Posted

技术标签:

【中文标题】如何在js或节点js中ping ip [重复]【英文标题】:How to ping ip in js or node js [duplicate] 【发布时间】:2021-04-11 01:20:22 【问题描述】:

我创建了检查 ip 可用性的电子应用程序。要检查可用性,您应该 ping ip。我使用 fetch api 并且使用 domens 可以正常工作,但是如果我尝试在本地网络中 ping ip,例如 192.168.1.190,我会被拒绝,但如果我通过cmd ping 它会获得成功的结果。我找到了库ping,但它的工作方式类似于获取并拒绝本地 ips。我应该如何ping?

附言

ip like 8.8.8.8 在 fetch api 中也返回拒绝,但在 cmd 中 ping 没问题。

【问题讨论】:

尝试搜索节点ICMP模块 【参考方案1】:

如果你使用nodejs,你可以使用exec调用系统ping命令。

const exec = require('child_process').exec;
function process(error, stdout, stderr) 
    //TODO: process result or logging.

exec("ping -c 3 localhost", process);

或者您可以使用 3rd 方库。 https://github.com/nospaceships/node-net-ping

【讨论】:

【参考方案2】:

使用icmp 包:

const icmp = require('icmp');

icmp.send('8.8.8.8', "Hey, I'm sending a message!")
    .then(obj => 
        console.log(obj.open ? 'Done' : 'Failed')
    )
    .catch(err => console.log(err));

【讨论】:

icmp有依赖row-socket,electron编译不成功

以上是关于如何在js或节点js中ping ip [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用节点js在mongodb中映射两个集合[重复]

如何快速ping网络中的所有IP地址? [重复]

如何将主机名解析为节点js中的IP地址

如何在 node.js 中运行 jQuery [重复]

如何检查文件(由完整路径给出)是不是存在?节点js [重复]

ping不通或丢包,如何通过工具进行链路测试?