wpa_supplicant - 如何切换到不同的网络?

Dus*_*gal 5 python unix linux archlinux wpa-supplicant

我需要什么: 通过调用 python 脚本连接到 archlinux 上的不同 wifi 网络。

我在做什么: 从 python 执行以下语句:

wpa_passphrase "MySSID" "MyPass"> /etc/wpa_supplicant/profile.conf
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/profile.conf
dhcpd wlan0
Run Code Online (Sandbox Code Playgroud)

它仅适用于第一次尝试。第二次执行时,它说 dhcpd 已经打开。我不知道如何切换到另一个网络。

我也试过 wpa_cli 又一次,不知道如何切换到另一个网络。

请提出一些修复或替代方案(不复杂)

GAD*_*D3R 0

编辑/etc/wpa_supplicant.conf

nano /etc/wpa_supplicant.conf
Run Code Online (Sandbox Code Playgroud)

完成文件,使其看起来像这样(当然将 wifi_name 和 wifi_key 替换为它们的实际值)。

network={
         ssid="wifi_name1"
         psk="wifi_key1"
}
Run Code Online (Sandbox Code Playgroud)

network={
         ssid="wifi_name2"
         psk="wifi_key2"
}
Run Code Online (Sandbox Code Playgroud)

然后保存退出

wifi 网络现已配置完毕,我们现在必须告诉我们要使用此配置文件连接到它。

wpa_supplicant -B -i wlan0 -c <(wpa_passphrase MYSSID passphrase)
Run Code Online (Sandbox Code Playgroud)

如果您的接口未命名为 wlan0,则将 wlan0 替换为您接口的真实名称。我们现在必须请求 IP 地址。

dhclient wlan0
Run Code Online (Sandbox Code Playgroud)

如果一切顺利,您现在会看到几行包含一些 IP 地址,并且命令 ping 应该可以工作。