All Projects → abandonware → wireless-tools

abandonware / wireless-tools

Licence: MIT license
Wireless tools for Node.js

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to wireless-tools

Spoofmac
💼 Change your MAC address for debugging
Stars: ✭ 2,687 (+1633.55%)
Mutual labels:  wifi, ifconfig
ESP32 Thing Plus
ESP32 Thing-compatible board using the WROOM module and a QWIIC connector.
Stars: ✭ 18 (-88.39%)
Mutual labels:  wifi, wireless
Mininet Wifi
Emulator for Software-Defined Wireless Networks
Stars: ✭ 249 (+60.65%)
Mutual labels:  wifi, wireless
Wifi Txpower Unlocker
Stars: ✭ 173 (+11.61%)
Mutual labels:  wifi, wireless
feedingbottle
FeedingBottle is a Aircrack-ng GUI, create by Fast Light User-Interface Designer ("FLUID").
Stars: ✭ 26 (-83.23%)
Mutual labels:  wifi, wireless
Aircrack Ng
WiFi security auditing tools suite
Stars: ✭ 2,690 (+1635.48%)
Mutual labels:  wifi, hostapd
vietnamese-password-dicts
Tổng hợp danh sách mật khẩu wifi tiếng Việt sử dụng cho aircrack-ng
Stars: ✭ 40 (-74.19%)
Mutual labels:  wifi, wpa
Wifi Passview
An open source batch script based WiFi Passview for Windows!
Stars: ✭ 157 (+1.29%)
Mutual labels:  wifi, wireless
refluxion
Refluxion -- MITM WPA attacks tool
Stars: ✭ 25 (-83.87%)
Mutual labels:  wifi, wpa
ansible-openwrt
Ansible collection to configure your OpenWrt devices more quickly and automatically (without Python)
Stars: ✭ 34 (-78.06%)
Mutual labels:  wifi, wireless
Netjson
NetJSON is a data interchange format for encoding the basic building blocks of networks.
Stars: ✭ 171 (+10.32%)
Mutual labels:  wifi, wireless
8821au
Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets
Stars: ✭ 67 (-56.77%)
Mutual labels:  wifi, hostapd
Probequest
Toolkit for Playing with Wi-Fi Probe Requests
Stars: ✭ 167 (+7.74%)
Mutual labels:  wifi, wireless
Django Netjsonconfig
Configuration manager for embedded devices, implemented as a reusable django-app
Stars: ✭ 213 (+37.42%)
Mutual labels:  wifi, wireless
Kickthemout
💤 Kick devices off your network by performing an ARP Spoof attack.
Stars: ✭ 2,005 (+1193.55%)
Mutual labels:  wifi, wireless
Pedalino
Smart wireless MIDI foot controller for guitarists and more.
Stars: ✭ 105 (-32.26%)
Mutual labels:  wifi, wireless
Mitmap
📡 A python program to create a fake AP and sniff data.
Stars: ✭ 1,526 (+884.52%)
Mutual labels:  wifi, wireless
Ansible Openwisp2 Imagegenerator
Automatically build several openwisp2 firmware images for different organizations while keeping track of their differences
Stars: ✭ 122 (-21.29%)
Mutual labels:  wifi, wireless
ethernally
Your scrcpy companion for Android wireless screen mirroring
Stars: ✭ 33 (-78.71%)
Mutual labels:  wifi, wireless
python-wifi-survey-heatmap
A Python application for Linux machines to perform WiFi site surveys and present the results as a heatmap overlayed on a floorplan
Stars: ✭ 231 (+49.03%)
Mutual labels:  wifi, wireless

Wireless tools for Node.js

npm version release version build status code climate test coverage github issues dependencies dev dependencies downloads

Looking for a maintainer

If you are interested in becoming a maintainer for this project, please let me know. I created this project many years ago and no longer have time to dedicate to moving it forward. I will not be accepting pull requests or responding to issues, sorry for the inconvenience.

Table of Contents

hostapd

The hostapd command is used to configure wireless access points.

hostapd.enable(options, callback)

The hostapd enable command is used to host an access point on a specific wireless interface.

var hostapd = require('wireless-tools/hostapd');

var options = {
  channel: 6,
  driver: 'rtl871xdrv',
  hw_mode: 'g',
  interface: 'wlan0',
  ssid: 'RaspberryPi',
  wpa: 2,
  wpa_passphrase: 'raspberry'
};

hostapd.enable(options, function(err) {
  // the access point was created
});

hostapd.disable(interface, callback)

The hostapd disable command is used to stop hosting an access point on a specific wireless interface.

var hostapd = require('wireless-tools/hostapd');

hostapd.disable('wlan0', function(err) {
  // no longer hosting the access point
});

ifconfig

The ifconfig command is used to configure network interfaces.

ifconfig.status(callback)

The ifconfig status command is used to query the status of all configured interfaces.

var ifconfig = require('wireless-tools/ifconfig');

ifconfig.status(function(err, status) {
  console.log(status);
});

// =>
[
  {
    interface: 'eth0',
    link: 'ethernet',
    address: 'b8:27:eb:da:52:ad',
    ipv4_address: '192.168.1.2',
    ipv4_broadcast: '192.168.1.255',
    ipv4_subnet_mask: '255.255.255.0',
    up: true,
    broadcast: true,
    running: true,
    multicast: true
  },
  {
    interface: 'lo',
    link: 'local',
    ipv4_address: '127.0.0.1',
    ipv4_subnet_mask: '255.0.0.0',
    up: true,
    running: true,
    loopback: true
  },
  {
    interface: 'wlan0',
    link: 'ethernet',
    address: '00:0b:81:95:12:21',
    ipv4_address: '192.168.10.1',
    ipv4_broadcast: '192.168.10.255',
    ipv4_subnet_mask: '255.255.255.0',
    up: true,
    broadcast: true,
    multicast: true
  }
]

ifconfig.status(interface, callback)

The ifconfig interface status command is used to query the status of a specific interface.

var ifconfig = require('wireless-tools/ifconfig');

ifconfig.status('eth0', function(err, status) {
  console.log(status);
});

// =>
{
  interface: 'eth0',
  link: 'ethernet',
  address: 'b8:27:eb:da:52:ad',
  ipv4_address: '192.168.1.2',
  ipv4_broadcast: '192.168.1.255',
  ipv4_subnet_mask: '255.255.255.0',
  up: true,
  broadcast: true,
  running: true,
  multicast: true
}

ifconfig.down(interface, callback)

The ifconfig down command is used to take down an interface that is up.

var ifconfig = require('wireless-tools/ifconfig');

ifconfig.down('wlan0', function(err) {
  // the interface is down
});

ifconfig.up(options, callback)

The ifconfig up command is used to bring up an interface with the specified configuration.

var ifconfig = require('wireless-tools/ifconfig');

var options = {
  interface: 'wlan0',
  ipv4_address: '192.168.10.1',
  ipv4_broadcast: '192.168.10.255',
  ipv4_subnet_mask: '255.255.255.0'
};

ifconfig.up(options, function(err) {
  // the interface is up
});

iwconfig

The iwconfig command is used to configure wireless network interfaces.

iwconfig.status(callback)

The iwconfig status command is used to query the status of all configured wireless interfaces.

var iwconfig = require('wireless-tools/iwconfig');

iwconfig.status(function(err, status) {
  console.log(status);
});

// =>
[
  {
    interface: 'wlan0',
    access_point: '00:0b:81:95:12:21',
    frequency: 2.437,
    ieee: '802.11bg',
    mode: 'master',
    noise: 0,
    quality: 77,
    sensitivity: 0,
    signal: 50,
    ssid: 'RaspberryPi'
  },
  {
    interface: 'wlan1',
    frequency: 2.412,
    mode: 'auto',
    noise: 0,
    quality: 0,
    sensitivity: 0,
    signal: 0,
    unassociated: true
  }
]

iwconfig.status(interface, callback)

The iwconfig interface status command is used to query the status of a specific wireless interface.

var iwconfig = require('wireless-tools/iwconfig');

iwconfig.status('wlan0', function(err, status) {
  console.log(status);
});

// =>
{
  interface: 'wlan0',
  access_point: '00:0b:81:95:12:21',
  frequency: 2.437,
  ieee: '802.11bg',
  mode: 'master',
  noise: 0,
  quality: 77,
  sensitivity: 0,
  signal: 50,
  ssid: 'RaspberryPi'
}

iwlist

The iwlist command is used to get detailed information from a wireless interface.

iwlist.scan(interface, callback)

The iwlist scan command is used to scan for wireless networks visible to a wireless interface. For convenience, the networks are sorted by signal strength.

var iwlist = require('wireless-tools/iwlist');

iwlist.scan('wlan0', function(err, networks) {
  console.log(networks);
});

iwlist.scan({ iface : 'wlan0', show_hidden : true }, function(err, networks) {
  console.log(networks);
});

// =>
[
  {
    address: '00:0b:81:ab:14:22',
    ssid: 'BlueberryPi',
    mode: 'master',
    frequency: 2.437,
    channel: 6,
    security: 'wpa',
    quality: 48,
    signal: 87
  },
  {
    address: '00:0b:81:95:12:21',
    ssid: 'RaspberryPi',
    mode: 'master',
    frequency: 2.437,
    channel: 6,
    security: 'wpa2',
    quality: 58,
    signal: 83
  },
  {
    address: '00:0b:81:cd:f2:04',
    ssid: 'BlackberryPi',
    mode: 'master',
    frequency: 2.437,
    channel: 6,
    security: 'wep',
    quality: 48,
    signal: 80
  },
  {
    address: '00:0b:81:fd:42:14',
    ssid: 'CranberryPi',
    mode: 'master',
    frequency: 2.437,
    channel: 6,
    security: 'open',
    quality: 32,
    signal: 71
  }
]

[
  {
    address: '00:0b:81:ab:14:22',
    ssid: 'BlueberryPi',
    mode: 'master',
    frequency: 2.437,
    channel: 6,
    security: 'wpa',
    quality: 48,
    signal: 87
  },
  {
    address: '00:0b:81:95:12:21',
    ssid: 'RaspberryPi',
    mode: 'master',
    frequency: 2.437,
    channel: 6,
    security: 'wpa2',
    quality: 58,
    signal: 83
  },
  {
    address: '00:0b:81:cd:f2:04',
    ssid: 'BlackberryPi',
    mode: 'master',
    frequency: 2.437,
    channel: 6,
    security: 'wep',
    quality: 48,
    signal: 80
  },
  {
    address: '00:0b:81:fd:42:14',
    ssid: 'CranberryPi',
    mode: 'master',
    frequency: 2.437,
    channel: 6,
    security: 'open',
    quality: 32,
    signal: 71
  },
  {
    address: '2c:c5:d3:02:ae:4c',
    channel: 100,
    frequency: 5.5,
    mode: 'master',
    quality: 66,
    signal: -44,
    security: 'wpa2'
  }
]

udhcpc

The udhcpc command is used to configure a dhcp client for a network interface.

udhcpc.enable(options, callback)

The udhcpc enable command is used to start a dhcp client on a specific network interface.

var udhcpc = require('wireless-tools/udhcpc');

var options = {
  interface: 'wlan0'
};

udhcpc.enable(options, function(err) {
  // the dhcp client was started
});

udhcpc.disable(interface, callback)

The udhcpc disable command is used to stop a dhcp client on a specific network interface.

var udhcpc = require('wireless-tools/udhcpc');

udhcpc.disable('wlan0', function(err) {
  // the dhcp client was stopped
});

udhcpd

The udhcpd command is used to configure a dhcp server for a network interface.

udhcpd.enable(options, callback)

The udhcpd enable command is used to start a dhcp server on a specific network interface.

var udhcpd = require('wireless-tools/udhcpd');

var options = {
  interface: 'wlan0',
  start: '192.168.10.100',
  end: '192.168.10.200',
  option: {
    router: '192.168.10.1',
    subnet: '255.255.255.0',
    dns: [ '4.4.4.4', '8.8.8.8' ]
  }
};

udhcpd.enable(options, function(err) {
  // the dhcp server was started
});

udhcpd.disable(interface, callback)

The udhcpd disable command is used to stop a dhcp server on a specific network interface.

var udhcpd = require('wireless-tools/udhcpd');

udhcpd.disable('wlan0', function(err) {
  // the dhcp server was stopped
});

wpa_cli

The wpa_cli command is used to setup what wpa_supplicant must do to connect to a wireless network connection for a network interface.

Most of wpa_cli commands return either 'OK' or 'FAIL' (and the exit status is always 0). Because of this, all 'FAIL' responses will return and callback with an error.

Responses containing an 'OK' result only means than wpa_supplicant had received the command. You must poll wpa_supplicant (or other commands like iwconfig) to be sure that the command was actually applied by wpa_supplicant.

wpa_cli.status(interface, callback)

The wpa_cli status command is used to get the current status of wpa_supplicant on a specific network interface.

var wpa_cli = require('wireless-tools/wpa_cli');

wpa_cli.status('wlan0', function(err, status) {
    console.dir(status);
});
// =>
{
    bssid: '2c:f5:d3:02:ea:d9',
    frequency: 2412,
    mode: 'station',
    key_mgmt: 'wpa2-psk',
    ssid: 'Fake-Wifi',
    pairwise_cipher: 'CCMP',
    group_cipher: 'CCMP',
    p2p_device_address: 'e4:28:9c:a8:53:72',
    wpa_state: 'COMPLETED',
    ip: '10.34.141.168',
    mac: 'e4:28:9c:a8:53:72',
    uuid: 'e1cda789-8c88-53e8-ffff-31c304580c1e',
    id: 0
}

wpa_cli.bssid(interface, ap, ssid, callback)

The wpa_cli bssid command is used to set the preferred access points for an specific ssid on a specific network interface.

var wpa_cli = require('wireless-tools/wpa_cli');

wpa_cli.bssid('wlan0', '2c:f5:d3:02:ea:dd', 'Fake-Wifi', function(err, data){
    // this is correct usage
    console.dir(data);
});

wpa_cli.reassociate(interface, callback)

The wpa_cli reassociate command is used to instruct wpa_supplicant to reassociate to access points for an SSID on a specific network interface.

var wpa_cli = require('wireless-tools/wpa_cli');

wpa_cli.bssid('wlan0', 'Fake-Wifi', '2c:f5:d3:02:ea:dd', function(err, data){
      // our usage is wrong so an error is triggered
      if (err) {
        console.dir(err);
        // attempt to reassociate
        wpa_cli.reassociate('wlan0', function(err, data) {
          console.dir(data);
        });
      }
});

wpa_cli.set(interface, variable, value, callback)

The wpa_cli set command is used to set wpa_supplicant parameters to a value on a specific network interface.

wpa_cli.add_network(interface, callback)

The wpa_cli add_network command is used to create a new network entry on a specific network interface. It will return on success the id of the new network

wpa_cli.set_network(interface, id, variable, value, callback)

The wpa_cli set_network command is used to set variables for a network on a specific network interface.

wpa_cli.enable_network(interface, id, callback)

The wpa_cli enable_network command is used to enable a network on a specific network interface.

wpa_cli.disable_network(interface, id, callback)

The wpa_cli disable_network command is used to disable a network on a specific network interface.

wpa_cli.remove_network(interface, id, callback)

The wpa_cli remove_network command is used to remove a network on a specific network interface.

wpa_cli.select_network(interface, id, callback)

The wpa_cli select_network command is used to select a specific network on a specific network interface and disable all others.

var wpa_cli = require('wireless-tools/wpa_cli');

wpa_cli.select_network('wlan0', 0, function(err, data){
    if (err) {
        // most likely the set values for the specified id are wrong
        console.dir(err);
    } else {
        // successfully connected to the new network
        console.dir(data);
    }
});

wpa_cli.scan(interface, callback)

The wpa_cli scan is used to request a new BSS scan on a specific network interface.

wpa_cli.scan_results(interface, callback)

The wpa_cli scan_results is used to return the results of the latest BSS scan that was run on a specific network interface.

var wpa_cli = require('wireless-tools/wpa_cli');
 
wpa_cli.scan('wlan0', function(err, data){
    wpa_cli.scan_results('wlan0', function(err, data) {
       // returns the results of the BSS scan once it completes
       console.dir(data);
    }
});
=>
[
 {
    bssid: '2c:f5:d3:02:ea:d9',
    frequency: 2472,
    signalLevel: -31,
    flags: '[WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]',
    ssid: 'FakeWifi'
 },
 {
    bssid: '2c:f5:d3:02:ea:d9',
    frequency: 2472,
    signalLevel: -31,
    flags: '[WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]',
    ssid: 'FakeWifi2'
 }
]

wpa_cli.save_config(interface, callback)

The wpa_cli save_config command is used to save the current wpa_cli configuration for the specific network interface.

var wpa_cli = require('wireless-tools/wpa_cli');
 
wpa_cli.save_config('wlan0', function(err, data){
    // current wpa_cli configuration is saved
});

wpa_supplicant

The wpa_supplicant command is used to configure a wireless network connection for a network interface.

wpa_supplicant.enable(options, callback)

The wpa_supplicant enable command is used to join a wireless network on a specific network interface.

var wpa_supplicant = require('wireless-tools/wpa_supplicant');

var options = {
  interface: 'wlan0',
  ssid: 'RaspberryPi',
  passphrase: 'raspberry',
  driver: 'wext'
};

wpa_supplicant.enable(options, function(err) {
  // connected to the wireless network
});

wpa_supplicant.disable(interface, callback)

The wpa_supplicant disable command is used to disconnect from a wireless network on a specific network interface.

var wpa_supplicant = require('wireless-tools/wpa_supplicant');

wpa_supplicant.disable('wlan0', function(err) {
  // disconnected from wireless network
});

wpa_supplicant.manual(options, callback)

The wpa_supplicant manual command is used to launch wpa_supplicant on a specific network interface.

var wpa_supplicant = require('wireless-tools/wpa_supplicant');

var options = {
  interface: 'wlan0',
  drivers: [ 'nl80211', 'wext' ]
};

wpa_supplicant.manual(options, function(err) {
  // wpa_supplicant launched on wlan0 interface (can be setup using wpa_cli)
});

iw

The iw command is used to get and set detailed information from an nl80211 wireless interface.

iw.scan(interface, callback)

The iw scan command is used to scan for wireless networks visible to a wireless interface. For convenience, the networks are sorted by signal strength.

var iw = require('wireless-tools/iw');

iw.scan('wlan0', function(err, networks) {
  console.log(networks);
});

iw.scan({ iface : 'wlan0', show_hidden : true }, function(err, networks) {
  console.log(networks);
});

// =>
[
  {
    address: '00:0b:81:ab:14:22',
    frequency: 2422,
    signal: -80,
    lastSeenMs: 0,
    ssid: 'BlueberryPi',
    channel: 3,
    security: 'wpa'
  },
  {
    address: '00:0b:81:95:12:21',
    frequency: 5825,
    signal: -83,
    lastSeenMs: 2031,
    ssid: 'RaspberryPi',
    channel: 165,
    security: 'wpa2'
  },
  {
    address: '00:0b:81:cd:f2:04',
    frequency: 2437,
    signal: -88,
    lastSeenMs: 0,
    ssid: 'BlackberryPi',
    channel: 6,
    security: 'wep'
  },
  {
    address: '00:0b:81:fd:42:14',
    frequency: 2412,
    signal: -92,
    lastSeenMs: 0,
    ssid: 'CranberryPi',
    channel: 1,
    security: 'open'
  }
]

[
  {
    address: '00:0b:81:ab:14:22',
    frequency: 2422,
    signal: -80,
    lastSeenMs: 0,
    ssid: 'BlueberryPi',
    channel: 3,
    security: 'wpa'
  },
  {
    address: '00:0b:81:95:12:21',
    frequency: 5825,
    signal: -83,
    lastSeenMs: 2031,
    ssid: 'RaspberryPi',
    channel: 165,
    security: 'wpa2'
  },
  {
    address: '00:0b:81:cd:f2:04',
    frequency: 2437,
    signal: -88,
    lastSeenMs: 0,
    ssid: 'BlackberryPi',
    channel: 6,
    security: 'wep'
  },
  {
    address: '00:0b:81:fd:42:14',
    frequency: 2412,
    signal: -92,
    lastSeenMs: 0,
    ssid: 'CranberryPi',
    channel: 1,
    security: 'open'
  },
  {
    address: '00:0b:81:fd:42:01',
    frequency: 2412,
    signal: -94,
    lastSeenMs: 1069,
    channel: 1,
    security: 'open'
  }
]
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].