像在 CMD 中使用 Node.Js 一样连续 Ping
Ping Continuously Like Ping in CMD Using Node.Js
我想使用 node.js ping 本地网络中的主机。这是我的代码:
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) 一次。我想要的只是连续 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);
});
结果:
嗯,显而易见的答案是:
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);
});
这将每秒 ping host2
数组中的每个主机一次。
现在您可以对 ping 模块使用 async await,请在下面找到它 -
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")
}
} )()
我想使用 node.js ping 本地网络中的主机。这是我的代码:
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) 一次。我想要的只是连续 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);
});
结果:
嗯,显而易见的答案是:
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);
});
这将每秒 ping host2
数组中的每个主机一次。
现在您可以对 ping 模块使用 async await,请在下面找到它 -
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")
}
} )()