Место, где я посещаю очень регулярно, имело бесплатный доступ к wifi без пароля на Wi-Fi SSID
Однако, это один из тех, где вы можете подключиться к Wi-Fi, но когда вы пытаетесь пойти на веб-страницу он сначала перенаправляет вас на страницу входа, где вы должны ввести имя пользователя и пароль. Имя пользователя и пароль очень редко меняются (т. Е. Он не изменяется не менее года).
Довольно часто мое соединение падает, и мне нужно снова пройти процесс входа в систему, есть ли способ автоматизировать его с помощью скрипт в Linux?
Спасибо
Вы можете выполнить это с помощью команды POST:
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
Будьте в курсе, чтобы заполнить все требуемый ввод в вашей форме (иногда есть ввод безопасности, и это может быть очень сложно автоматизировать связь в скрипте).
Это было давно, что я выполняю скрипт для выполнения этого, и я didn 't проверить это.
Надеюсь, что этот ответ поможет.
Вы можете выполнить это с помощью команды POST:
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
Будьте в курсе, чтобы заполнить все требуемый ввод в вашей форме (иногда есть ввод безопасности, и это может быть очень сложно автоматизировать связь в скрипте).
Это было давно, что я выполняю скрипт для выполнения этого, и я didn 't проверить это.
Надеюсь, что этот ответ поможет.
Вы можете выполнить это с помощью команды POST:
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
Будьте в курсе, чтобы заполнить все требуемый ввод в вашей форме (иногда есть ввод безопасности, и это может быть очень сложно автоматизировать связь в скрипте).
Это было давно, что я выполняю скрипт для выполнения этого, и я didn 't проверить это.
Надеюсь, что этот ответ поможет.