我希望在本地网络中使用node.js来平平主机。这是我的代码:
var ping = require('ping');
var host2 = ['192.168.0.1', '192.168.1.2', '192.168.2.3'];
host2.forEach(function(host){
ping.sys.probe(host, function(active){
var info = active ? 'IP ' + host + ' = Active' : 'IP ' + host + ' = Non-Active';
console.log(info);
});
});此代码只运行(ping)一次。我想要的只是不断地打平。这与node.js是可能的吗?
编辑:运行代码时的:

编辑2:使用setInterval / setTimeout时的:
代码:
var ping = require('ping');
var host2 = ['192.168.0.1', '192.168.1.2', '192.168.2.3'];
host2.forEach(function(host){
ping.sys.probe(host, function tes(active){
var info = active ? 'IP ' + host + ' = Active' : 'IP ' + host + ' = Non-Active';
console.log(info);
});
setInterval(tes, 2000);
});结果:

发布于 2017-05-26 04:24:02
显而易见的答案是:
var ping = require('ping');
var host2 = ['192.168.0.1', '192.168.1.2', '192.168.2.3'];
var frequency = 1000; //1 second
host2.forEach(function(host){
setInterval(function() {
ping.sys.probe(host, function(active){
var info = active ? 'IP ' + host + ' = Active' : 'IP ' + host + ' = Non-Active';
console.log(info);
});
}, frequency);
});这将每秒钟对host2数组中的每个主机进行一次ping。
发布于 2020-04-09 16:19:36
现在您可以对ping模块使用异步等待,请在下面找到它-
const ping = require( 'ping' ),
host = 'www.google.com';
( async () => {
try {
const isAlive = await ping.promise.probe(host, { timeout: 10 });
const msg = isAlive ? 'host ' + host + ' is alive' : 'host ' + host + ' is dead';
console.log(msg);
} catch ( error ) {
console.log(error, "asassas")
}
} )()https://stackoverflow.com/questions/44193551
复制相似问题