Запустить команду при подключении к определенной беспроводной сети - PullRequest
2 голосов
/ 07 июня 2010

В моем университете есть определенная сеть WLAN, открытая для студентов и сотрудников. Однако, чтобы использовать его, необходимо сначала войти через веб-сайт, используя свое имя пользователя и пароль. Это также можно сделать, отправив http-запрос с правильными POST-данными на тот же веб-сайт. У меня уже есть сценарий оболочки, который делает это, но мне все еще интересно, можно ли было бы автоматически запускать этот сценарий каждый раз, когда мой компьютер подключается к университету. Можно ли сделать это каким-то полу-простым способом?

Ответы [ 2 ]

2 голосов
/ 07 июня 2010

Я знаю, что NetworkManager (который используется в Ubuntu) предоставляет интерфейс DBUS - я подозреваю, что для подключенной / отключенной сети есть событие, которое вы можете использовать. Попробуйте проверить NetworkManager DBUS Interface spec.

Если вы никогда раньше не работали с DBUS, не бойтесь, есть привязки практически для каждого языка. Я уверен, что есть даже клиент CLI, который вы можете вызвать из сценария оболочки. Эта запись в блоге показывает, как обнаружить новое соединение из NetworkManager с Python - это может быть хорошей отправной точкой

0 голосов
/ 07 июня 2010

Вы можете написать простой скрипт, который запускает "iwconfig" и обрабатывает его вывод. Если имя сети найдено (например, с помощью Regex), вы отправляете запрос.

Я не думаю, что вы можете запустить скрипт, когда вы подключены к сети, но вы можете добавить его в CRON, чтобы он выполнялся, например, каждые десять секунд.

Вот документ, который вам может пригодиться: https://help.ubuntu.com/community/CronHowto

...