diff --git a/lib/network.js b/lib/network.js index 60034fd..8b475bc 100644 --- a/lib/network.js +++ b/lib/network.js @@ -1503,12 +1503,19 @@ function networkGatewayDefault(callback) { try { exec(cmd, { maxBuffer: 1024 * 20000 }, function (error, stdout) { if (!error) { - let lines = stdout.toString().split('\n').map(line => line.trim()); + const lines = stdout.toString().split('\n').map(line => line.trim()); result = util.getValue(lines, 'gateway'); - if (callback) { - callback(result); - } - resolve(result); + } + if (!result) { + cmd = 'netstat -rn | awk \'/default/ {print $2}\''; + exec(cmd, { maxBuffer: 1024 * 20000 }, function (error, stdout) { + const lines = stdout.toString().split('\n').map(line => line.trim()); + result = lines.find(line => (/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(line))); + if (callback) { + callback(result); + } + resolve(result); + }); } else { if (callback) { callback(result);