mmcli removed: using iwlist on linux systems, output was not really comparable to other tools
This commit is contained in:
parent
de5cde2ca9
commit
2caacc853a
15
index.js
15
index.js
@ -8,7 +8,6 @@ const exec = require('child_process').exec;
|
|||||||
// The tools
|
// The tools
|
||||||
const airport = require('./lib/airport');
|
const airport = require('./lib/airport');
|
||||||
const iwlist = require('./lib/iwlist');
|
const iwlist = require('./lib/iwlist');
|
||||||
const nmcli = require('./lib/nmcli');
|
|
||||||
const netsh = require('./lib/netsh');
|
const netsh = require('./lib/netsh');
|
||||||
|
|
||||||
var scanner;
|
var scanner;
|
||||||
@ -24,19 +23,11 @@ function initTools(callback) {
|
|||||||
if (stats) {
|
if (stats) {
|
||||||
return callback(null, iwlist);
|
return callback(null, iwlist);
|
||||||
}
|
}
|
||||||
|
fs.stat(netsh.tool, function (err, stats) {
|
||||||
fs.stat(nmcli.tool, function (err, stats) {
|
|
||||||
if (stats) {
|
if (stats) {
|
||||||
return callback(null, nmcli);
|
return callback(null, netsh);
|
||||||
}
|
}
|
||||||
|
callback(new Error('No scanner found'));
|
||||||
fs.stat(netsh.tool, function (err, stats) {
|
|
||||||
if (stats) {
|
|
||||||
return callback(null, netsh);
|
|
||||||
}
|
|
||||||
|
|
||||||
callback(new Error('No scanner found'));
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
50
lib/nmcli.js
50
lib/nmcli.js
@ -1,50 +0,0 @@
|
|||||||
/**
|
|
||||||
* Scanning WiFis on Mac OS X using nmcli
|
|
||||||
* Created by kc on 04.04.16.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const _ = require('lodash');
|
|
||||||
const tool = '/usr/bin/nmcli';
|
|
||||||
const cmdLine = tool + ' -m tabular -f SSID,BSSID,SIGNAL,FREQ device wifi';
|
|
||||||
|
|
||||||
const macRegex = /([0-9a-zA-Z]{1}[0-9a-zA-Z]{1}[:]{1}){5}[0-9a-zA-Z]{1}[0-9a-zA-Z]{1}/;
|
|
||||||
/**
|
|
||||||
* Parsing the output of nmcli
|
|
||||||
* @param str output of the tool
|
|
||||||
* @param callback
|
|
||||||
*/
|
|
||||||
function parseOutput(str, callback) {
|
|
||||||
var err = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
var lines = str.split('\n');
|
|
||||||
var wifis = [];
|
|
||||||
|
|
||||||
for (var i = 1, l = lines.length; i < l; i++) {
|
|
||||||
var mac = lines[i].match(macRegex);
|
|
||||||
if (!mac) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var macStart = lines[i].indexOf(mac[0]);
|
|
||||||
var elements = lines[i].substr(macStart).split(/[ ]+/);
|
|
||||||
wifis.push({
|
|
||||||
'ssid' : _.trim(lines[i].substr(0, macStart), ' \''),
|
|
||||||
'mac' : elements[0].trim(),
|
|
||||||
'channel' : parseInt(elements[2].trim(), 10),
|
|
||||||
'rssi' : parseInt(elements[1].trim())
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (ex) {
|
|
||||||
err = ex;
|
|
||||||
}
|
|
||||||
|
|
||||||
callback(err, wifis);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
parseOutput: parseOutput,
|
|
||||||
cmdLine : cmdLine,
|
|
||||||
tool : tool
|
|
||||||
};
|
|
20
test/fixtures/nmcli/nmcli01.txt
vendored
20
test/fixtures/nmcli/nmcli01.txt
vendored
@ -1,20 +0,0 @@
|
|||||||
SSID BSSID SIGNAL FREQUENZ
|
|
||||||
'PDANet1' 00:35:1A:90:56:06 100 2412 MHz
|
|
||||||
'ExoNet1' 00:35:1A:90:56:05 100 2412 MHz
|
|
||||||
'TEST-Wifi' 00:35:1A:90:56:00 96 2412 MHz
|
|
||||||
'OurTest' 00:35:1A:90:56:0C 96 2412 MHz
|
|
||||||
'OurDev' 00:35:1A:90:56:0B 76 2412 MHz
|
|
||||||
'PDANet1' 00:35:1A:6F:0F:46 48 2437 MHz
|
|
||||||
'TEST-Wifi' 00:35:1A:6F:0F:40 58 2437 MHz
|
|
||||||
'ExoNet1' 00:35:1A:6F:0F:45 58 2437 MHz
|
|
||||||
'OurDev' 00:35:1A:6F:0F:4B 58 2437 MHz
|
|
||||||
'OurTest' 00:35:1A:6F:0F:4C 60 2437 MHz
|
|
||||||
'TEST-Wifi' 00:F2:8B:8F:58:70 58 2462 MHz
|
|
||||||
'ExoNet1' 00:F2:8B:8F:58:75 72 2462 MHz
|
|
||||||
'PDANet1' 00:F2:8B:8F:58:76 58 2462 MHz
|
|
||||||
'PDANet1' 00:35:1A:5B:46:76 56 2412 MHz
|
|
||||||
'OurDev' 00:35:1A:5B:46:7B 48 2412 MHz
|
|
||||||
'OurDev' 00:F2:8B:8F:58:7B 58 2462 MHz
|
|
||||||
'OurTest' 00:F2:8B:8F:58:7C 72 2462 MHz
|
|
||||||
'TEST-Wifi' 00:35:1A:5B:46:70 56 2412 MHz
|
|
||||||
'OurTest' 00:35:1A:5B:46:7C 48 2412 MHz
|
|
@ -1,30 +0,0 @@
|
|||||||
/**
|
|
||||||
* nmcli unit test
|
|
||||||
* Created by kc on 04.04.16.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const fs = require('fs');
|
|
||||||
const path = require('path');
|
|
||||||
const assert = require('assert');
|
|
||||||
|
|
||||||
const nmcli = require('../lib/nmcli');
|
|
||||||
|
|
||||||
describe.skip('nmcli', () => {
|
|
||||||
it('parses the output of file 1', function(done) {
|
|
||||||
nmcli.parseOutput(fs.readFileSync(path.join(__dirname, 'fixtures','nmcli','nmcli01.txt'), { encoding: 'utf8' }), (err, info) => {
|
|
||||||
|
|
||||||
console.log(info);
|
|
||||||
assert.ok(info);
|
|
||||||
assert.equal(info.length, 19);
|
|
||||||
|
|
||||||
var ap = info[0];
|
|
||||||
assert.equal(ap.mac, '00:35:1A:90:56:06');
|
|
||||||
assert.equal(ap.ssid, 'PDANet1');
|
|
||||||
//assert.equal(ap.rssi, -70);
|
|
||||||
assert.strictEqual(ap.channel, 112);
|
|
||||||
|
|
||||||
done(err);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
Loading…
x
Reference in New Issue
Block a user