Package Exports
- ping
- ping/lib/builder/factory
- ping/lib/builder/factory.js
- ping/lib/index.js
- ping/lib/parser/factory
- ping/lib/parser/factory.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ping) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
NODE-PING 
a ping wrapper for nodejs
@last-modified: 2025-09-29
License MIT
(C) Daniel Zelisko
http://github.com/danielzzz/node-ping
Description
node-ping is a simple wrapper for the system ping utility.
Installation
npm install ping
Notes:
- Although it is marked with node >=22, it should technially working in all node version for production purpose. The version is marked for development point of view
Usage
Below are examples extracted from examples
Tradition calls
var ping = require('ping');
var hosts = ['192.168.1.1', 'google.com', 'yahoo.com'];
hosts.forEach(function(host){
ping.sys.probe(host, function(isAlive){
var msg = isAlive ? 'host ' + host + ' is alive' : 'host ' + host + ' is dead';
console.log(msg);
});
});Tradition calls with configuration
var cfg = {
timeout: 10,
// WARNING: -i 2 may not work in other platform like windows
extra: ['-i', '2'],
};
hosts.forEach(function(host){
ping.sys.probe(host, function(isAlive){
var msg = isAlive ? 'host ' + host + ' is alive' : 'host ' + host + ' is dead';
console.log(msg);
}, cfg);
});Promise wrapper
var ping = require('ping');
var hosts = ['192.168.1.1', 'google.com', 'yahoo.com'];
hosts.forEach(function (host) {
ping.promise.probe(host)
.then(function (res) {
console.log(res);
});
});Promise Wrapper with configurable ping options
hosts.forEach(function (host) {
// WARNING: -i 2 argument may not work in other platform like windows
ping.promise.probe(host, {
timeout: 10,
extra: ['-i', '2'],
}).then(function (res) {
console.log(res);
});
});Async-Await
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);
}Async-Await with configurable ping options
var ping = require('ping');
var hosts = ['192.168.1.1', 'google.com', 'yahoo.com'];
for(let host of hosts){
// WARNING: -i 2 argument may not work in other platform like windows
let res = await ping.promise.probe(host, {
timeout: 10,
extra: ['-i', '2'],
});
console.log(res);
}Support configuration
See PingConfig in types/index.d.ts
Output specification
- For callback based implementation:
See probeCallback in types/ping-sys.d.ts
- For promise based implementation
See PingResponse in types/ping-promise.d.ts
Note
Since
pingin this module relies on thepingfrom underlying platform, arguments inPingConfig.extrawill definitely be varied across different platforms.However,
numeric,timeoutandmin_replyhave been abstracted. Values for them are expected to be cross platform.By setting
numeric,timeoutormin_replyto false, you can runpingwithout corresponding arguments.
FAQ
- It does not work with busybox's ping implemetation #89
Try to install package iputils. For example, running apk add iputils
For questions regarding to the implementation of
timeout, anddeadline, please checkout discussions in #101For questions regarding to the defintions of
host,inputHost, andnumeric_host, please checkout discussions in #133
Contributing
Before opening a pull request please make sure your changes follow the contribution guidelines.
Contributors
Made with contrib.rocks.