Using npm:
$ npm install wifi-channels
To run the tests
$ node test.js
You can use this module to get a list of Wifi channels that are permitted in a country. The data is based on the linux wireless-regdb as of 2022/Aug/12.
const wifiChannels = require('wifi-channels');
console.log(wifiChannels.getDfsRegion('DE'));
// ETSI
console.log(JSON.stringify(wifiChannels.getPermittedChannels('DE', '802.11a')))
// {"channel":"32","lower":"5150","upper":"5170","maxbw":80,"maxantgain":0,"no_outdoor":true,"no_ir":false,"dfs_required":false}
// {"channel":"34","lower":"5150","upper":"5190","maxbw":80,"maxantgain":0,"no_outdoor":true,"no_ir":false,"dfs_required":false}
// {"channel":"36","lower":"5170","upper":"5190","maxbw":80,"maxantgain":0,"no_outdoor":true,"no_ir":false,"dfs_required":false}
// ...
Retrieves the DFS region for a given ISO-2 code. Returns one of the following strings:
- UNSET
- FCC
- ETSI
- JP
Retrieves a list of permitted channels for the ISO-2 code and band given. Band can be:
- 802.11b
- 802.11y
- 802.11a
Returns an array of objects including the following properties:
Member | Description |
---|---|
channel | Channel number |
lower | Lowest frequency in MHz |
upper | Highest frequency in MHz |
maxbw | Maximum bandwidth in MHz |
maxantgain | Maximum antenna gain in db |
no_outdoor | Not allowed outside buildings (true/false) |
dfs_required | DFS capabilities required (true/false) |
no_ir | Do not initiate radiation (true/false) |
Updated json files can be generated using the utils/update.sh
script.
Python 3 is required and the jsonpickle module has to be available in your venv,
install it with python3 -m pip install jsonpickle
.
Then run
./update.sh https://mirrors.edge.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-2021.08.28.tar.gz
This will create a temp directory, extract the data and convert it to the json file.
The MIT License (MIT)
Copyright (c) 2018-2021 Daniel Arnold