Server IP : 162.213.251.212 / Your IP : 18.117.7.5 [ Web Server : LiteSpeed System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : allssztx ( 535) PHP Version : 8.1.31 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/allssztx/www/easybuyer/node_modules/default-gateway/ |
Upload File : |
"use strict"; const execa = require("execa"); const ipRegex = require("ip-regex"); const gwArgs = "path Win32_NetworkAdapterConfiguration where IPEnabled=true get DefaultIPGateway,Index /format:table".split(" "); const ifArgs = "path Win32_NetworkAdapter get Index,NetConnectionID /format:table".split(" "); const parse = (gwTable, ifTable, family) => { let gateway, gwid, result; (gwTable || "").trim().split("\n").splice(1).some(line => { const results = line.trim().split(/} +/) || []; const gw = results[0]; const id = results[1]; gateway = (ipRegex[family]().exec((gw || "").trim()) || [])[0]; if (gateway) { gwid = id; return true; } }); (ifTable || "").trim().split("\n").splice(1).some(line => { const i = line.indexOf(" "); const id = line.substr(0, i).trim(); const name = line.substr(i + 1).trim(); if (id === gwid) { result = {gateway, interface: name ? name : null}; return true; } }); if (!result) { throw new Error("Unable to determine default gateway"); } return result; }; const spawnOpts = { windowsHide: true, }; const promise = family => { return Promise.all([ execa.stdout("wmic", gwArgs, spawnOpts), execa.stdout("wmic", ifArgs, spawnOpts), ]).then(results => { const gwTable = results[0]; const ifTable = results[1]; return parse(gwTable, ifTable, family); }); }; const sync = family => { const gwTable = execa.sync("wmic", gwArgs, spawnOpts).stdout; const ifTable = execa.sync("wmic", ifArgs, spawnOpts).stdout; return parse(gwTable, ifTable, family); }; module.exports.v4 = () => promise("v4"); module.exports.v6 = () => promise("v6"); module.exports.v4.sync = () => sync("v4"); module.exports.v6.sync = () => sync("v6");