diff --git a/README.md b/README.md index e69de29..9966e2d 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,67 @@ +#node-wifi-scanner + +This module for node.js scans available wifi networks. The main purpose was to enhance my node.js based +[ZigBee Site Survey Tool](http://ancasicolica.github.io/ZigBeeSiteSurvey/) with WiFi coexistence charts. This tool +claims to be compatible with current versions of Mac OS-X, Windows and Linux so I'll fix bugs as fast as possible. +Feature extensions on the other hand are not planned. + +The module was inspired from Maurice Sways "[node-wifiscanner](https://github.com/mauricesvay/node-wifiscanner)". I didn't use node-wifiscanner because I +had to handle much more complex network environments and also wanted to be independent of the operating +system language. The adaptions needed would have been too comprehensive for a pull request so I decided to write an own module. + +## Operating Systems + +It was tested with the following operating systems: +* Mac OS-X +* Windows 10 +* Ubuntu 14.04 +* Raspbian "Jessie" + +## Usage + + const scanner = require('node-wifi-scanner'); + + scanner.scan((err, networks) => { + if (err) { + console.error(err); + return; + } + console.log(networks); + }); + +## Technical background + +The module uses command line tools for gathering the network information: + +* airport on Mac OS-X: `airport -s` +* netsh on Windows: `netsh wlan show networks mode=Bssid` +* iwlist (1st choice) on Linux: `iwlist scan` +* nmcli (fallback only) on Linux: `nmcli -m tabular -f SSID,BSSID,SIGNAL,FREQ device wifi` + +Unfortunately, Mac OS-X and Windows use the system language for the output which requires a quite +generic way of parsing the data. If you experience any troubles, please create a GitHub issue and supply +the output of the tool. + +## Licence + +The MIT License (MIT) + +Copyright (c) 2016 Christian Kuster + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/tests/airport.js b/test/airport.js similarity index 100% rename from tests/airport.js rename to test/airport.js diff --git a/tests/fixtures/airport/airport01.txt b/test/fixtures/airport/airport01.txt similarity index 100% rename from tests/fixtures/airport/airport01.txt rename to test/fixtures/airport/airport01.txt diff --git a/tests/fixtures/airport/airport02.txt b/test/fixtures/airport/airport02.txt similarity index 100% rename from tests/fixtures/airport/airport02.txt rename to test/fixtures/airport/airport02.txt diff --git a/tests/fixtures/iwlist/iwlist01.txt b/test/fixtures/iwlist/iwlist01.txt similarity index 100% rename from tests/fixtures/iwlist/iwlist01.txt rename to test/fixtures/iwlist/iwlist01.txt diff --git a/tests/fixtures/netsh/netsh_de_complex01.txt b/test/fixtures/netsh/netsh_de_complex01.txt similarity index 100% rename from tests/fixtures/netsh/netsh_de_complex01.txt rename to test/fixtures/netsh/netsh_de_complex01.txt diff --git a/tests/fixtures/netsh/netsh_en_complex01.txt b/test/fixtures/netsh/netsh_en_complex01.txt similarity index 100% rename from tests/fixtures/netsh/netsh_en_complex01.txt rename to test/fixtures/netsh/netsh_en_complex01.txt diff --git a/tests/fixtures/nmcli/nmcli01.txt b/test/fixtures/nmcli/nmcli01.txt similarity index 100% rename from tests/fixtures/nmcli/nmcli01.txt rename to test/fixtures/nmcli/nmcli01.txt diff --git a/tests/netsh.js b/test/netsh.js similarity index 100% rename from tests/netsh.js rename to test/netsh.js