【问题标题】:How to ping ip in js or node js [duplicate]如何在js或节点js中ping ip [重复]
【发布时间】:2023-10-16 16:56:01
【问题描述】:

我创建了检查 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模块

标签: javascript node.js electron ip ping


【解决方案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编译不成功