我想将Wifi凭据添加到/etc/wpa_supplicant/wpa_supplicant.conf
。 (debian linux)使用Node.js
配置文件看起来像
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US
network={
ssid="homewifi"
psk="homepassword"
key_mgmt=WPA-PSK
}
我想添加另一个网络,比如
ssid="anotherwifi"
psk="anotherpsk"
1。如何使用Node.js代码添加网络?
//maybe like this?
var original = exec("sudo cat wpa_supplicant.conf");
var new_network = {ssid: "anotherwifi", psk: "anotherpsk"};
exec("sudo save ? original + network?)
2。这是网络配置中的key_mgmt,这是必不可少的关键吗?如果我不知道怎么办?
(事实上,我想将wifi凭证保存到无头iot设备,使用wifi接入点 - 用户通过网络服务器向设备发送信息)
答案 0 :(得分:0)
我写了一个示例代码供您参考,希望对您有所帮助。
const exec = require('child_process').exec;
const async = require('async');
const SSID = "MyWifiAP";
const PSK = "12345678";
exec('wpa_cli add_network', function(error, stdout, stderr)
{
if(error !== null) {
console.log('error: ' + error);
}
else {
let net_id = stdout.substr((stdout.indexOf('wlan') + 7)).trim();
async.series([
function(callback) {
exec('wpa_cli set_network ' + net_id + ' ssid \'\"' + SSID + '\"\'', function(error, stdout)
{
if(error) {
console.error(error);
}
else {
console.log('SSID result: ' + stdout);
callback();
}
});
},
function(callback) {
exec('wpa_cli set_network ' + net_id + ' psk \'\"' + PSK + '\"\'', function(error, stdout)
{
if(error) {
console.error(error);
}
else {
console.log('PSK result: ' + stdout);
callback();
}
});
},
function(callback) {
exec('wpa_cli save_config', function(error, stdout)
{
if(error) {
console.error(error);
}
else {
console.log('select_network result: ' + stdout);
callback();
}
});
}
], function(errs, results) {
if(errs) throw errs; // errs = [err1, err2, err3]
console.log('results: ' + results); // results = [result1, result2, result3]
});
}
});