|
|
@ -4,7 +4,6 @@ const net = require("net");
|
|
|
|
const spawn = require("child_process").spawn;
|
|
|
|
const spawn = require("child_process").spawn;
|
|
|
|
const events = require("events");
|
|
|
|
const events = require("events");
|
|
|
|
const fs = require("fs");
|
|
|
|
const fs = require("fs");
|
|
|
|
const { MAC, FBSD, LIN, WIN } = require("./util-server");
|
|
|
|
|
|
|
|
const util = require("./util-server");
|
|
|
|
const util = require("./util-server");
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = Ping;
|
|
|
|
module.exports = Ping;
|
|
|
@ -21,12 +20,12 @@ function Ping(host, options) {
|
|
|
|
|
|
|
|
|
|
|
|
const timeout = 10;
|
|
|
|
const timeout = 10;
|
|
|
|
|
|
|
|
|
|
|
|
if (WIN) {
|
|
|
|
if (util.WIN) {
|
|
|
|
this._bin = "c:/windows/system32/ping.exe";
|
|
|
|
this._bin = "c:/windows/system32/ping.exe";
|
|
|
|
this._args = (options.args) ? options.args : [ "-n", "1", "-w", timeout * 1000, host ];
|
|
|
|
this._args = (options.args) ? options.args : [ "-n", "1", "-w", timeout * 1000, host ];
|
|
|
|
this._regmatch = /[><=]([0-9.]+?)ms/;
|
|
|
|
this._regmatch = /[><=]([0-9.]+?)ms/;
|
|
|
|
|
|
|
|
|
|
|
|
} else if (LIN) {
|
|
|
|
} else if (util.LIN) {
|
|
|
|
this._bin = "/bin/ping";
|
|
|
|
this._bin = "/bin/ping";
|
|
|
|
|
|
|
|
|
|
|
|
const defaultArgs = [ "-n", "-w", timeout, "-c", "1", host ];
|
|
|
|
const defaultArgs = [ "-n", "-w", timeout, "-c", "1", host ];
|
|
|
@ -38,7 +37,7 @@ function Ping(host, options) {
|
|
|
|
this._args = (options.args) ? options.args : defaultArgs;
|
|
|
|
this._args = (options.args) ? options.args : defaultArgs;
|
|
|
|
this._regmatch = /=([0-9.]+?) ms/;
|
|
|
|
this._regmatch = /=([0-9.]+?) ms/;
|
|
|
|
|
|
|
|
|
|
|
|
} else if (MAC) {
|
|
|
|
} else if (util.MAC) {
|
|
|
|
|
|
|
|
|
|
|
|
if (net.isIPv6(host) || options.ipv6) {
|
|
|
|
if (net.isIPv6(host) || options.ipv6) {
|
|
|
|
this._bin = "/sbin/ping6";
|
|
|
|
this._bin = "/sbin/ping6";
|
|
|
@ -49,7 +48,7 @@ function Ping(host, options) {
|
|
|
|
this._args = (options.args) ? options.args : [ "-n", "-t", timeout, "-c", "1", host ];
|
|
|
|
this._args = (options.args) ? options.args : [ "-n", "-t", timeout, "-c", "1", host ];
|
|
|
|
this._regmatch = /=([0-9.]+?) ms/;
|
|
|
|
this._regmatch = /=([0-9.]+?) ms/;
|
|
|
|
|
|
|
|
|
|
|
|
} else if (FBSD) {
|
|
|
|
} else if (util.FBSD) {
|
|
|
|
this._bin = "/sbin/ping";
|
|
|
|
this._bin = "/sbin/ping";
|
|
|
|
|
|
|
|
|
|
|
|
const defaultArgs = [ "-n", "-t", timeout, "-c", "1", host ];
|
|
|
|
const defaultArgs = [ "-n", "-t", timeout, "-c", "1", host ];
|
|
|
@ -99,7 +98,7 @@ Ping.prototype.send = function (callback) {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
this._ping.stdout.on("data", function (data) { // log stdout
|
|
|
|
this._ping.stdout.on("data", function (data) { // log stdout
|
|
|
|
if (WIN) {
|
|
|
|
if (util.WIN) {
|
|
|
|
data = convertOutput(data);
|
|
|
|
data = convertOutput(data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this._stdout = (this._stdout || "") + data;
|
|
|
|
this._stdout = (this._stdout || "") + data;
|
|
|
@ -113,7 +112,7 @@ Ping.prototype.send = function (callback) {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
this._ping.stderr.on("data", function (data) { // log stderr
|
|
|
|
this._ping.stderr.on("data", function (data) { // log stderr
|
|
|
|
if (WIN) {
|
|
|
|
if (util.WIN) {
|
|
|
|
data = convertOutput(data);
|
|
|
|
data = convertOutput(data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this._stderr = (this._stderr || "") + data;
|
|
|
|
this._stderr = (this._stderr || "") + data;
|
|
|
@ -170,7 +169,7 @@ Ping.prototype.stop = function () {
|
|
|
|
* @returns {string}
|
|
|
|
* @returns {string}
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
function convertOutput(data) {
|
|
|
|
function convertOutput(data) {
|
|
|
|
if (WIN) {
|
|
|
|
if (util.WIN) {
|
|
|
|
if (data) {
|
|
|
|
if (data) {
|
|
|
|
return util.convertToUTF8(data);
|
|
|
|
return util.convertToUTF8(data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|