diff --git a/README.md b/README.md index 48cb205..499080d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,42 @@ -#fork of node-wifi-scanner +# Fork of node-wifi-scanner -This fork is used to improve the ability under linux to scan networks -It tries to use sudo if accessible +This fork is used to add the ability to scan as sudo under linux. +Why the fork? -[Node-Wifi-Scanner Github](https://github.com/ancasicolica/node-wifi-scanner/) +- Add ability to execute command with prefix 'sudo' to get iwlist working on linux! +- Uses promise instead of callback in module exports to make it easier and prevent callback hells. +- Add `encrypted:boolean` to the output, to determine if the network is encrypted (Currently only works under iwlist/linux, otherwise just returns false) + + +To use sudo, just pass `true` to the scan method and it will use sudo. +For ex. +```js +const wifiScan = require("node-wifi-scanner"); +let result = await wifiScan.scan(true); +``` + +Beforehand you should add the iwlist scan command to the sudoers file. +`%mygroup ALL = (root) NOPASSWD: iwlist wlanX scan` [src](https://stackoverflow.com/questions/53710368/how-do-i-add-typescript-types-to-a-javascript-module-without-switching-to-typesc) + + +### Installation +`yarn add git+https://git.gaminggeneration.de/tobiash/node-wifi-scanner` +or `npm install git+https://tobiash@git.gaminggeneration.de/tobiash/node-wifi-scanner` + + +### Type definitions +I also tried to add type definitions (see /types/index.d.ts), but as far as i know i did it wrong haha. +Since this is my first ever module (-fork) i don't really know how to do it. - Let me know in the issues tab or create a pull request :) +But i added jsdoc to the functions to add the ability to make the coding process a bit cleaner. + + +
+Fork from: [Node-Wifi-Scanner Github](https://github.com/ancasicolica/node-wifi-scanner/) + + +

+---- +# Node-Wifi-Scanner [![Build Status](https://travis-ci.org/ancasicolica/node-wifi-scanner.svg?branch=master)](https://travis-ci.org/ancasicolica/node-wifi-scanner) @@ -22,39 +55,24 @@ system language. The adaptions needed would have been too comprehensive for a pu ## Operating Systems It was tested with the following operating systems: -* Mac OS-X -* Windows 10 -* Ubuntu 14.04 -* Raspbian "Jessie" +* Mac OS-X [Not tested by fork author] +* Windows 10 [Not tested by fork author] +* Ubuntu 14.04 [Tested by fork author] +* Raspbian "Jessie" [Tested by fork author] ## Installation - npm i node-wifi-scanner + yarn add git+https://git.gaminggeneration.de/tobiash/node-wifi-scanner ## Usage -### Command Line - -Run the script ```scan``` in the bin folder. - -### Code - - const scanner = require('node-wifi-scanner'); - - scanner.scan((err, networks) => { - if (err) { - console.error(err); - return; - } - console.log(networks); - }); - The tool returns an array with objects, each object representing a network with the following properties: * channel: WiFi channel * ssid: SSID of the network (if available) * mac: MAC Address of the network access point (if available, otherwise empty string) * rssi: signal strength +* encrypted: boolean - Is network encrypted? In contrary to other wifi scanners no information about security is returned. This is due to the very different implementation of the command line tools which do not allow a flawless detection. @@ -80,7 +98,7 @@ the operating system. Please note the following restrictions before using this tool in a productive system. **Linux**: iwlist does only return all found networks if run as sudo! Otherwise you'll -get only the network you're connected to. +get only the network you're connected to. That's where my fork comes in!! **Windows**: there are some network cards which do not return the MAC address and other parameters of the found networks. In this case @@ -92,7 +110,7 @@ card, OS,...) as available. Thanks The MIT License (MIT) -Copyright (c) 2016 Christian Kuster +Copyright (c) 2016-2024 Christian Kuster, Tobias Hopp Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal