在Linux中以编程方式连接到wifi网络

在Linux中以编程方式连接到wifi网络,linux,wifi,Linux,Wifi,关于Android或iOS的这一功能有很多问题,但我正试图在Linux上实现这一点(具体来说是OpenWrt 15.05)。我想扫描无线网络,将列表呈现给用户,让他们选择一个并将用户名/密码发送到网络 我使用wireless_tools软件包中的iw_scan编写了一个快速C程序,这样我就可以看到无线网络,但是我在尝试确定如何连接到无线网络时遇到了问题。同一个包中的iwconfig只是用来修改一个已经存在的连接 我花了几个小时在网上冲浪,认为一定有一个软件包已经做到了这一点,因为它是如此常见的用

关于Android或iOS的这一功能有很多问题,但我正试图在Linux上实现这一点(具体来说是OpenWrt 15.05)。我想扫描无线网络,将列表呈现给用户,让他们选择一个并将用户名/密码发送到网络

我使用wireless_tools软件包中的iw_scan编写了一个快速C程序,这样我就可以看到无线网络,但是我在尝试确定如何连接到无线网络时遇到了问题。同一个包中的iwconfig只是用来修改一个已经存在的连接

我花了几个小时在网上冲浪,认为一定有一个软件包已经做到了这一点,因为它是如此常见的用例。有人知道吗


谢谢。

wpa\u恳求者

看看这个包裹。它包括可通过
wpa\u cli
wpa\u gui
实用程序或应用程序控制的
wpa\u请求程序
守护程序

wicd
networkmanager
这样的程序在内部使用
wpa\u requiciant


网络管理器


您还可以使用或命令行界面(
nmcli
)进行。它提供了比wpa_supplicant更高级别的抽象。

我尝试了很多解决方案,从
wicd
,到network manager的cli界面
nmcli
,再到python。我不想要UI,我不想要网络管理器,python wifi项目太复杂了,我遇到了一些问题。因此,我编写了一个简短的bash脚本,用于连接wpa和开放网络(不支持WEP),它是
wpa\u密码短语和
wpa\u请求者
上的包装器:

sudo apt-get install -y wireless-tools wpasupplicant expect macchanger
sudo wget -O /usr/local/bin/wifi-connect https://raw.githubusercontent.com/erjoalgo/erjoalgo-gnu-scripts/master/wifi-connect
sudo chmod +x /usr/local/bin/wifi-connect
wifi-connect -e Internet -p my-password
wifi-connect -h

wpa密码短语文件(包括明文密码短语)保存在
$HOME/.config/wifi connect
中,如果未提供ESSID,它将自动连接到任何已知可用网络。它支持通过macchanger更改iface mac地址

嗯,不确定,但是wicd对你有用吗?还有,谢谢。我将看一看这些实用程序。