有关Android或iOS的这个function有多个问题,但我正在尝试在Linux上做这个(OpenWrt 15.05是具体的)。 我想扫描无线networking,向用户显示列表,让他们select一个并将用户名/密码发送到networking。
我使用wireless_tools软件包中的iw_scan编写了一个快速C程序,这样我就可以看到无线networking,但是我在尝试确定如何连接到无线networking时遇到了问题。 来自同一个软件包的iwconfig只是修改一个已经存在的连接。
我花了几个小时浏览networking,认为必须有一个包已经这样做了,因为这是一个常见的用例。 任何人都知道吗?
谢谢。
的wpa_supplicant
看看wpa_supplicant包。 它包括wpa_supplicant
守护进程,可以通过wpa_cli
和wpa_gui
实用程序或D-Bus API进行控制 。
像wicd
和Network Manager
这样的程序在内部使用wpa_supplicant
。
网络管理器
您还可以使用D-Bus API或NetworkManager
命令行界面( nmcli
)。 它比wpa_supplicant
提供了更高层次的抽象。
我已经尝试了一些解决方案,从wicd
到网络管理器的cli界面nmcli
,到python的wifi 。 我不想要一个用户界面,我不想要网络管理器,而蟒蛇wifi项目有太多的问题,太复杂了。 所以我写了一个简短的bash脚本来连接到wpa和开放网络(WEP不支持),一个wpa_passphrase
和wpa_supplicant
的包装:
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
wpa-passphrase文件保存在/etc/wpa-connect
,如果没有提供ESSID,它将自动连接到任何已知的可用网络。 它支持通过macchanger更改iface mac。