From f25bb4e25dfdbcc7112e234fc53c613bda80436e Mon Sep 17 00:00:00 2001 From: Maria Camila Cubides <70594665+MariaCamilaCubides@users.noreply.github.com> Date: Tue, 4 May 2021 12:02:22 -0500 Subject: [PATCH] Get default gateway --- lib/network.js | 25 ++++++++++++++++--------- test/networktest.js | 8 ++++++++ 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 test/networktest.js diff --git a/lib/network.js b/lib/network.js index 60034fd..3566ce6 100644 --- a/lib/network.js +++ b/lib/network.js @@ -1505,17 +1505,24 @@ function networkGatewayDefault(callback) { if (!error) { let lines = stdout.toString().split('\n').map(line => line.trim()); result = util.getValue(lines, 'gateway'); - if (callback) { - callback(result); + if (!result) { + cmd = 'netstat -rn | awk \'/default/ {print $2}\''; + exec(cmd, { maxBuffer: 1024 * 20000 }, function (error, stdout) { + 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); + } + resolve(result); } - resolve(result); - } else { - if (callback) { - callback(result); - } - resolve(result); } - }); + }); } catch (e) { if (callback) { callback(result); } resolve(result); diff --git a/test/networktest.js b/test/networktest.js new file mode 100644 index 0000000..f8e3e56 --- /dev/null +++ b/test/networktest.js @@ -0,0 +1,8 @@ +const network = require('../lib/network'); + + +async function getNetwork() { + console.log(await network.networkGatewayDefault()); +} + +getNetwork(); \ No newline at end of file