В месте, где я бываю очень регулярно, был бесплатный доступ к Wi-Fi с открытым доступом без пароля на Wi-Fi SSID.
Однако, это один из тех, где вы можете подключиться к Wi-Fi, но когда вы пытаетесь перейти на веб-страница, она сначала перенаправляет вас на страницу входа, где вы должны ввести имя пользователя и пароль. Имя пользователя и пароль очень редко меняются (то есть не меняются в течение как минимум года).
Довольно часто мое соединение разрывается, и мне приходится снова проходить процесс входа в систему, есть ли способ автоматизировать это с помощью скрипта в Linux?
Спасибо
Можно выполнить это с командным пунктом:
POST http://[ADRESS]:[PORT]/ <<< 'auth_user=ID&auth_pass=PASSWORD&accept=Continue'
Затем просто необходимо скопировать этот сценарий в папке /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
Знайте для заполнения всего необходимого входа в форме (иногда существует вход безопасности, и это может быть действительно сложно для автоматизации связи в сценарии).
Это было давным-давно, что я выполняю сценарий для выполнения этого, и я не протестировал его.
Надеюсь эта справка ответа.