Node.js module to interact with wpa_supplicant using dbus
npm install wpa_supplicant
var wpa = require('wpa_supplicant')
// if you do not pass an interface name it'll will try and guess it
var wifi = wpa('wlan0')
wifi.on('ready', function () {
wifi.scan() // scan once
})
wifi.on('update', function () {
var cur = wifi.currentNetwork
console.log('Current network:', cur && cur.ssid)
console.log('Available networks:')
wifi.networks.forEach(function (n) {
console.log(n.ssid + ', ' + n.frequency + ', ' + n.signal)
})
})
var wifi = wpa(interfaceName)Create a new instance. Will connect over dbus to wpa_supplicant, so make sure that, that is running.
If you not specify interfaceName, it will try and guess it for you by picking
the first interface that starts with w.
wifi.nameThe interface name of the wifi.
wifi.stateThe current state of the wifi.
wifi.driverThe wifi driver name.
wifi.scanningBoolean indicating if the wifi is scanning.
wifi.scan()Scan for available wifis.
wifi.on('update')Emitted every time state is updated.
wifi.on('ready')Emitted when the initial setup has completed and the instance is ready to use.
wifi.on('error')Emitted when there was an critical error.
wifi.on('warning')Emitted when there was an non-critical error.
wifi.networksList of available wifis. Each item is a network object (see below).
wifi.currentNetworkCurrently selected network. Also a network object.
network.ssidThe ssid of the network.
network.frequencyThe frequency of the network in mHz.
network.signalThe current signal strength of the network.
network.rsnThe RSN info on the network. Has information about what kind of authentication the wifi requires.
network.connect([options])Connect to the network. Options include
{
psk: 'wifi password'
}
network.disconnect()Disconnect from the network.
If you get an error on when trying to find the wifi you might need to run your script as sudo, ymmv.
MIT