From 2caacc853a86155ecc8a3560da352a87ce2c1fad Mon Sep 17 00:00:00 2001 From: Christian Kuster Date: Tue, 12 Apr 2016 17:22:11 +0200 Subject: [PATCH] mmcli removed: using iwlist on linux systems, output was not really comparable to other tools --- index.js | 15 ++-------- lib/nmcli.js | 50 --------------------------------- test/fixtures/nmcli/nmcli01.txt | 20 ------------- test/nmcli.js | 30 -------------------- 4 files changed, 3 insertions(+), 112 deletions(-) delete mode 100644 lib/nmcli.js delete mode 100644 test/fixtures/nmcli/nmcli01.txt delete mode 100644 test/nmcli.js diff --git a/index.js b/index.js index 84ef5c8..badf58f 100644 --- a/index.js +++ b/index.js @@ -8,7 +8,6 @@ const exec = require('child_process').exec; // The tools const airport = require('./lib/airport'); const iwlist = require('./lib/iwlist'); -const nmcli = require('./lib/nmcli'); const netsh = require('./lib/netsh'); var scanner; @@ -24,19 +23,11 @@ function initTools(callback) { if (stats) { return callback(null, iwlist); } - - fs.stat(nmcli.tool, function (err, stats) { + fs.stat(netsh.tool, function (err, stats) { if (stats) { - return callback(null, nmcli); + return callback(null, netsh); } - - fs.stat(netsh.tool, function (err, stats) { - if (stats) { - return callback(null, netsh); - } - - callback(new Error('No scanner found')); - }); + callback(new Error('No scanner found')); }); }); }); diff --git a/lib/nmcli.js b/lib/nmcli.js deleted file mode 100644 index 8fb9773..0000000 --- a/lib/nmcli.js +++ /dev/null @@ -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 -}; diff --git a/test/fixtures/nmcli/nmcli01.txt b/test/fixtures/nmcli/nmcli01.txt deleted file mode 100644 index 3ff3bdf..0000000 --- a/test/fixtures/nmcli/nmcli01.txt +++ /dev/null @@ -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 diff --git a/test/nmcli.js b/test/nmcli.js deleted file mode 100644 index 6a23590..0000000 --- a/test/nmcli.js +++ /dev/null @@ -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); - }); - }); - -}); \ No newline at end of file