我经常访问的地方有开放访问的免费 wifi,wifi SSID 上没有密码
但是,它是您可以连接到 wifi 的方式之一,但是当您尝试访问网页时,它首先会将您重定向到登录页面,您必须在其中输入用户名和密码。用户名和密码很少更改(即至少一年没有更改)。
我的连接经常掉线,我必须再次完成登录过程,有没有办法在 Linux 中使用脚本自动执行此操作?
谢谢
小智 3
您可以使用命令POST执行此操作:
POST http://[ADRESS]:[PORT]/ <<< 'auth_user=ID&auth_pass=PASSWORD&accept=Continue'
Run Code Online (Sandbox Code Playgroud)
然后你只需要把这个脚本复制到文件夹中即可/etc/NetworkManager/dispatcher.d/。当您使用 NetworkManager 连接到网络时,它会将$1连接或断开连接中使用的接口传递$2到您的脚本中。
#!/bin/bash
if [ "$1 $2" = 'wlan0 up' ]
then
essid=$(iwconfig wlan0 | grep -o 'ESSID:".*$' | sed 's/^ESSID:"\(.*\)".*$/\1/')
case "$essid" in
'Freewifi')
POST http://[ADRESS]:[PORT]/ <<< 'auth_user=ID&auth_pass=PASSWORD&accept=Continue' ;;
'Other')
POST http://[ADRESS]:[PORT] <<< 'accept_cgu=1' ;;
esac
fi
Run Code Online (Sandbox Code Playgroud)
请注意在表单中填写所有必需的输入(有时存在安全输入,并且在脚本中自动连接可能非常复杂)。
那是很久以前我执行一个脚本来执行此操作,但我没有测试它。
希望这个答案有帮助。