请问如何切换到不同的网络?

2024-06-11 23:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要的: 通过调用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

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

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

请提出一些解决方案或替代方案(简单)


Tags: 网络脚本confetc语句profilepassphrasewifi
2条回答

你的具体问题是,你启动了wpaunuplicant和dhcp,而不是重新启动它们。我有一个剧本

#shutdown dhc
dhclient -r
#shutdown wpa_supplicant
killall wpa_supplicant
#down interface
ifdown  force wlan0
sleep 1
#your wpa startup here:
wpa_supplicant -t -fYOUR_LOG_FILE -cYOUR_wpa_supplicant.conf -B -iwlan0
sleep 1
#restart dhc
dhclient -nw

我想您可以通过适当地配置/etc/network/interfaces来更好地实现这一点。在

顺便说一句,原则上,根本不需要重启dhc。过了一段时间,它应该意识到它需要获取一个新的IP,但对我来说这需要很长时间。;)

编辑/etc/wpa_请求者.conf在

nano /etc/wpa_supplicant.conf

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

^{2}$

以及

network={
         ssid="wifi_name2"
         psk="wifi_key2"
}

然后保存并退出

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

wpa_supplicant -B -i wlan0 -c <(wpa_passphrase MYSSID passphrase)

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

dhclient wlan0

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

相关问题 更多 >