Merge pull request #578 from zprjk/improve-wifi-networks-win32
improve wifiNetworks detection (win)
This commit is contained in:
commit
ba5ff9f053
49
lib/wifi.js
49
lib/wifi.js
@ -417,28 +417,35 @@ function wifiNetworks(callback) {
|
|||||||
let cmd = 'chcp 65001 && netsh wlan show networks mode=Bssid';
|
let cmd = 'chcp 65001 && netsh wlan show networks mode=Bssid';
|
||||||
exec(cmd, util.execOptsWin, function (error, stdout) {
|
exec(cmd, util.execOptsWin, function (error, stdout) {
|
||||||
|
|
||||||
const parts = stdout.toString('utf8').split(os.EOL + os.EOL + 'SSID ');
|
const ssidParts = stdout.toString('utf8').split(os.EOL + os.EOL + 'SSID ');
|
||||||
parts.shift();
|
ssidParts.shift();
|
||||||
|
|
||||||
parts.forEach(part => {
|
ssidParts.forEach(ssidPart => {
|
||||||
const lines = part.split(os.EOL);
|
const ssidLines = ssidPart.split(os.EOL);
|
||||||
if (lines && lines.length >= 8 && lines[0].indexOf(':') >= 0) {
|
if (ssidLines && ssidLines.length >= 8 && ssidLines[0].indexOf(':') >= 0) {
|
||||||
let bssid = lines[4].split(':');
|
const bssidsParts = ssidPart.split('BSSID ');
|
||||||
bssid.shift();
|
bssidsParts.shift();
|
||||||
bssid = bssid.join(':').trim().toLowerCase();
|
|
||||||
const channel = lines[7].split(':').pop().trim();
|
bssidsParts.forEach((bssidPart) => {
|
||||||
const quality = lines[5].split(':').pop().trim();
|
const bssidLines = bssidPart.split(os.EOL);
|
||||||
result.push({
|
const bssidLine = bssidLines[0].split(':');
|
||||||
ssid: lines[0].split(':').pop().trim(),
|
bssidLine.shift();
|
||||||
bssid,
|
const bssid = bssidLine.join(':').trim().toLowerCase();
|
||||||
mode: '',
|
const channel = bssidLines[3].split(':').pop().trim();
|
||||||
channel: channel ? parseInt(channel, 10) : null,
|
const quality = bssidLines[1].split(':').pop().trim();
|
||||||
frequency: wifiFrequencyFromChannel(channel),
|
|
||||||
signalLevel: wifiDBFromQuality(quality),
|
result.push({
|
||||||
quality: quality ? parseInt(quality, 10) : null,
|
ssid: ssidLines[0].split(':').pop().trim(),
|
||||||
security: [lines[2].split(':').pop().trim()],
|
bssid,
|
||||||
wpaFlags: [lines[3].split(':').pop().trim()],
|
mode: '',
|
||||||
rsnFlags: []
|
channel: channel ? parseInt(channel, 10) : null,
|
||||||
|
frequency: wifiFrequencyFromChannel(channel),
|
||||||
|
signalLevel: wifiDBFromQuality(quality),
|
||||||
|
quality: quality ? parseInt(quality, 10) : null,
|
||||||
|
security: [ssidLines[2].split(':').pop().trim()],
|
||||||
|
wpaFlags: [ssidLines[3].split(':').pop().trim()],
|
||||||
|
rsnFlags: []
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user