Как программно входить в сеть типа «точка-точка»?

Я часто подключаюсь к сети, которая открыта, но перед использованием на веб-странице требуется проверка подлинности ключа. Возможно ли автоматизировать аутентификацию со сценарием?

8
задан 17 February 2011 в 23:55

20 ответов

Какая забавная проблема.

Хотя я уверен, что ответ ændrük, вероятно, сработает, я немного не согласен с тем, чтобы что-то зависящее от настольного программного обеспечения управляло доступностью сети.

Я предлагаю вам поиграть с библиотекой Mechanize Python. Вы можете установить его из репозиториев через:

sudo apt-get install python-mechanize

Затем получите скрипты. Вам нужно начать с выяснения структуры страницы, на которую вы отправляете. Вам нужно найти, где вы формируетесь, и какие поля нужно вводить для отправки. Как только вы это знаете, это действительно так просто, как просто написать быстрый маленький парсер и подателя. Механизация делает весь тяжелый подъем. Вот небольшой пример, адаптированный из библиотеки Механизма Python :

import sys
from mechanize import ParseResponse, urlopen, urljoin

# replace this with the actual login page
# you'll need to do some research
uri = "http://theloginpage.com/"

response = urlopen(uri)
forms = ParseResponse(response, backwards_compat=False)
form = forms[0]
print form
form["username"] = "your username"
form["username"] = "password"

# form.click() returns a mechanize.Request object
# (see HTMLForm.click.__doc__ if you want to use only the forms support, and
# not the rest of mechanize)
print urlopen(form.click()).read()

В зависимости от того, как работает их система, этого может быть достаточно. Возможно, вам придется завязать какой-то куки-файл, чтобы поддерживать сеанс в то время, когда он включает соединение, но, с технической точки зрения, нет аргументов, почему они должны требовать этого.

Тогда вам просто нужно связать это с так что он получает вызов. Загрузка его из /etc/network/if-up.d должна работать, но я предлагаю вам префикс вашего кода с проверкой, чтобы убедиться, что вы действительно находитесь в точке доступа, в которой работает ваш вход.

5
ответ дан 25 May 2018 в 22:56
  • 1
    Замечательно, я не знал о механизме. Я взволнован, чтобы попробовать. – ændrük 18 February 2011 в 02:41

Какая забавная проблема.

Хотя я уверен, что ответ ændrük, вероятно, сработает, я немного не согласен с тем, чтобы что-то зависящее от настольного программного обеспечения управляло доступностью сети.

Я предлагаю вам поиграть с библиотекой Mechanize Python. Вы можете установить его из репозиториев через:

sudo apt-get install python-mechanize

Затем получите скрипты. Вам нужно начать с выяснения структуры страницы, на которую вы отправляете. Вам нужно найти, где вы формируетесь, и какие поля нужно вводить для отправки. Как только вы это знаете, это действительно так просто, как просто написать быстрый маленький парсер и подателя. Механизация делает весь тяжелый подъем. Вот небольшой пример, адаптированный из библиотеки Механизма Python :

import sys from mechanize import ParseResponse, urlopen, urljoin # replace this with the actual login page # you'll need to do some research uri = "http://theloginpage.com/" response = urlopen(uri) forms = ParseResponse(response, backwards_compat=False) form = forms[0] print form form["username"] = "your username" form["username"] = "password" # form.click() returns a mechanize.Request object # (see HTMLForm.click.__doc__ if you want to use only the forms support, and # not the rest of mechanize) print urlopen(form.click()).read()

В зависимости от того, как работает их система, этого может быть достаточно. Возможно, вам придется завязать какой-то куки-файл, чтобы поддерживать сеанс в то время, когда он включает соединение, но, с технической точки зрения, нет аргументов, почему они должны требовать этого.

Тогда вам просто нужно связать это с так что он получает вызов. Загрузка его из /etc/network/if-up.d должна работать, но я предлагаю вам префикс вашего кода с проверкой, чтобы убедиться, что вы действительно находитесь в точке доступа, в которой работает ваш вход.

5
ответ дан 25 July 2018 в 22:28

Какая забавная проблема.

Хотя я уверен, что ответ ændrük, вероятно, сработает, я немного не согласен с тем, чтобы что-то зависящее от настольного программного обеспечения управляло доступностью сети.

Я предлагаю вам поиграть с библиотекой Mechanize Python. Вы можете установить его из репозиториев через:

sudo apt-get install python-mechanize

Затем получите скрипты. Вам нужно начать с выяснения структуры страницы, на которую вы отправляете. Вам нужно найти, где вы формируетесь, и какие поля нужно вводить для отправки. Как только вы это знаете, это действительно так просто, как просто написать быстрый маленький парсер и подателя. Механизация делает весь тяжелый подъем. Вот небольшой пример, адаптированный из библиотеки Механизма Python :

import sys from mechanize import ParseResponse, urlopen, urljoin # replace this with the actual login page # you'll need to do some research uri = "http://theloginpage.com/" response = urlopen(uri) forms = ParseResponse(response, backwards_compat=False) form = forms[0] print form form["username"] = "your username" form["username"] = "password" # form.click() returns a mechanize.Request object # (see HTMLForm.click.__doc__ if you want to use only the forms support, and # not the rest of mechanize) print urlopen(form.click()).read()

В зависимости от того, как работает их система, этого может быть достаточно. Возможно, вам придется завязать какой-то куки-файл, чтобы поддерживать сеанс в то время, когда он включает соединение, но, с технической точки зрения, нет аргументов, почему они должны требовать этого.

Тогда вам просто нужно связать это с так что он получает вызов. Загрузка его из /etc/network/if-up.d должна работать, но я предлагаю вам префикс вашего кода с проверкой, чтобы убедиться, что вы действительно находитесь в точке доступа, в которой работает ваш вход.

5
ответ дан 26 July 2018 в 21:46

Какая забавная проблема.

Хотя я уверен, что ответ ændrük, вероятно, сработает, я немного не согласен с тем, чтобы что-то зависящее от настольного программного обеспечения управляло доступностью сети.

Я предлагаю вам поиграть с библиотекой Mechanize Python. Вы можете установить его из репозиториев через:

sudo apt-get install python-mechanize

Затем получите скрипты. Вам нужно начать с выяснения структуры страницы, на которую вы отправляете. Вам нужно найти, где вы формируетесь, и какие поля нужно вводить для отправки. Как только вы это знаете, это действительно так просто, как просто написать быстрый маленький парсер и подателя. Механизация делает весь тяжелый подъем. Вот небольшой пример, адаптированный из библиотеки Механизма Python :

import sys from mechanize import ParseResponse, urlopen, urljoin # replace this with the actual login page # you'll need to do some research uri = "http://theloginpage.com/" response = urlopen(uri) forms = ParseResponse(response, backwards_compat=False) form = forms[0] print form form["username"] = "your username" form["username"] = "password" # form.click() returns a mechanize.Request object # (see HTMLForm.click.__doc__ if you want to use only the forms support, and # not the rest of mechanize) print urlopen(form.click()).read()

В зависимости от того, как работает их система, этого может быть достаточно. Возможно, вам придется завязать какой-то куки-файл, чтобы поддерживать сеанс в то время, когда он включает соединение, но, с технической точки зрения, нет аргументов, почему они должны требовать этого.

Тогда вам просто нужно связать это с так что он получает вызов. Загрузка его из /etc/network/if-up.d должна работать, но я предлагаю вам префикс вашего кода с проверкой, чтобы убедиться, что вы действительно находитесь в точке доступа, в которой работает ваш вход.

5
ответ дан 31 July 2018 в 12:06

Какая забавная проблема.

Хотя я уверен, что ответ ændrük, вероятно, сработает, я немного не согласен с тем, чтобы что-то зависящее от настольного программного обеспечения управляло доступностью сети.

Я предлагаю вам поиграть с библиотекой Mechanize Python. Вы можете установить его из репозиториев через:

sudo apt-get install python-mechanize

Затем получите скрипты. Вам нужно начать с выяснения структуры страницы, на которую вы отправляете. Вам нужно найти, где вы формируетесь, и какие поля нужно вводить для отправки. Как только вы это знаете, это действительно так просто, как просто написать быстрый маленький парсер и подателя. Механизация делает весь тяжелый подъем. Вот небольшой пример, адаптированный из библиотеки Механизма Python :

import sys from mechanize import ParseResponse, urlopen, urljoin # replace this with the actual login page # you'll need to do some research uri = "http://theloginpage.com/" response = urlopen(uri) forms = ParseResponse(response, backwards_compat=False) form = forms[0] print form form["username"] = "your username" form["username"] = "password" # form.click() returns a mechanize.Request object # (see HTMLForm.click.__doc__ if you want to use only the forms support, and # not the rest of mechanize) print urlopen(form.click()).read()

В зависимости от того, как работает их система, этого может быть достаточно. Возможно, вам придется завязать какой-то куки-файл, чтобы поддерживать сеанс в то время, когда он включает соединение, но, с технической точки зрения, нет аргументов, почему они должны требовать этого.

Тогда вам просто нужно связать это с так что он получает вызов. Загрузка его из /etc/network/if-up.d должна работать, но я предлагаю вам префикс вашего кода с проверкой, чтобы убедиться, что вы действительно находитесь в точке доступа, в которой работает ваш вход.

5
ответ дан 2 August 2018 в 03:54

Какая забавная проблема.

Хотя я уверен, что ответ ændrük, вероятно, сработает, я немного не согласен с тем, чтобы что-то зависящее от настольного программного обеспечения управляло доступностью сети.

Я бы посоветовал вам поиграть с библиотекой Mechanize Python. Вы можете установить его из репозиториев через:

  sudo apt-get install python-mechanize  

Затем получите скрипты. Вам нужно начать с выяснения структуры страницы, на которую вы отправляете. Вам нужно найти, где вы формируетесь, и какие поля нужно вводить для отправки. Как только вы это знаете, это действительно так просто, как просто написать быстрый маленький парсер и подателя. Механизация делает весь тяжелый подъем. Вот быстрый пример, адаптированный из их документов в формах :

  import sys из механизации импорта ParseResponse, urlopen, urljoin # заменить это на фактическую страницу входа #  необходимо выполнить некоторые исследования uri = "http://theloginpage.com/" response = urlopen (uri) forms = ParseResponse (response, backwards_compat = False) form = forms [0] форма формы печати ["username"] = "your  username "form [" username "] =" password "# form.click () возвращает объект mechanize.Request # (см. HTMLForm.click .__ doc__, если вы хотите использовать только поддержку форм, а # не остальную часть механизации)  print urlopen (form.click ()). read ()  

В зависимости от того, как работает их система, этого может быть достаточно. Возможно, вам придется завязать какой-то куки-файл, чтобы поддерживать сеанс в то время, когда он включает соединение, но, с технической точки зрения, нет аргументов, почему они должны требовать этого.

Тогда вам просто нужно связать это с так что он получает вызов. Загрузка его из /etc/network/if-up.d должна работать, но я предлагаю вам прикрепить свой код к проверке, чтобы убедиться, что вы действительно находитесь в точке доступа, в которой работает ваш вход.

5
ответ дан 4 August 2018 в 19:58

Какая забавная проблема.

Хотя я уверен, что ответ ændrük, вероятно, сработает, я немного не согласен с тем, чтобы что-то зависящее от настольного программного обеспечения управляло доступностью сети.

Я бы посоветовал вам поиграть с библиотекой Mechanize Python. Вы можете установить его из репозиториев через:

  sudo apt-get install python-mechanize  

Затем получите скрипты. Вам нужно начать с выяснения структуры страницы, на которую вы отправляете. Вам нужно найти, где вы формируетесь, и какие поля нужно вводить для отправки. Как только вы это знаете, это действительно так просто, как просто написать быстрый маленький парсер и подателя. Механизация делает весь тяжелый подъем. Вот быстрый пример, адаптированный из их документов в формах :

  import sys из механизации импорта ParseResponse, urlopen, urljoin # заменить это на фактическую страницу входа #  необходимо выполнить некоторые исследования uri = "http://theloginpage.com/" response = urlopen (uri) forms = ParseResponse (response, backwards_compat = False) form = forms [0] форма формы печати ["username"] = "your  username "form [" username "] =" password "# form.click () возвращает объект mechanize.Request # (см. HTMLForm.click .__ doc__, если вы хотите использовать только поддержку форм, а # не остальную часть механизации)  print urlopen (form.click ()). read ()  

В зависимости от того, как работает их система, этого может быть достаточно. Возможно, вам придется завязать какой-то куки-файл, чтобы поддерживать сеанс в то время, когда он включает соединение, но, с технической точки зрения, нет аргументов, почему они должны требовать этого.

Тогда вам просто нужно связать это с так что он получает вызов. Загрузка его из /etc/network/if-up.d должна работать, но я предлагаю вам прикрепить свой код к проверке, чтобы убедиться, что вы действительно находитесь в точке доступа, в которой работает ваш вход.

5
ответ дан 6 August 2018 в 04:00

Какая забавная проблема.

Хотя я уверен, что ответ ændrük, вероятно, сработает, я немного не согласен с тем, чтобы что-то зависящее от настольного программного обеспечения управляло доступностью сети.

Я бы посоветовал вам поиграть с библиотекой Mechanize Python. Вы можете установить его из репозиториев через:

  sudo apt-get install python-mechanize  

Затем получите скрипты. Вам нужно начать с выяснения структуры страницы, на которую вы отправляете. Вам нужно найти, где вы формируетесь, и какие поля нужно вводить для отправки. Как только вы это знаете, это действительно так просто, как просто написать быстрый маленький парсер и подателя. Механизация делает весь тяжелый подъем. Вот быстрый пример, адаптированный из их документов в формах :

  import sys из механизации импорта ParseResponse, urlopen, urljoin # заменить это на фактическую страницу входа #  необходимо выполнить некоторые исследования uri = "http://theloginpage.com/" response = urlopen (uri) forms = ParseResponse (response, backwards_compat = False) form = forms [0] форма формы печати ["username"] = "your  username "form [" username "] =" password "# form.click () возвращает объект mechanize.Request # (см. HTMLForm.click .__ doc__, если вы хотите использовать только поддержку форм, а # не остальную часть механизации)  print urlopen (form.click ()). read ()  

В зависимости от того, как работает их система, этого может быть достаточно. Возможно, вам придется завязать какой-то куки-файл, чтобы поддерживать сеанс в то время, когда он включает соединение, но, с технической точки зрения, нет аргументов, почему они должны требовать этого.

Тогда вам просто нужно связать это с так что он получает вызов. Загрузка его из /etc/network/if-up.d должна работать, но я предлагаю вам прикрепить свой код к проверке, чтобы убедиться, что вы действительно находитесь в точке доступа, в которой работает ваш вход.

5
ответ дан 7 August 2018 в 21:58

Какая забавная проблема.

Хотя я уверен, что ответ ændrük, вероятно, сработает, я немного не согласен с тем, чтобы что-то зависящее от настольного программного обеспечения управляло доступностью сети.

Я бы посоветовал вам поиграть с библиотекой Mechanize Python. Вы можете установить его из репозиториев через:

  sudo apt-get install python-mechanize  

Затем получите скрипты. Вам нужно начать с выяснения структуры страницы, на которую вы отправляете. Вам нужно найти, где вы формируетесь, и какие поля нужно вводить для отправки. Как только вы это знаете, это действительно так просто, как просто написать быстрый маленький парсер и подателя. Механизация делает весь тяжелый подъем. Вот быстрый пример, адаптированный из их документов в формах :

  import sys из механизации импорта ParseResponse, urlopen, urljoin # заменить это на фактическую страницу входа #  необходимо выполнить некоторые исследования uri = "http://theloginpage.com/" response = urlopen (uri) forms = ParseResponse (response, backwards_compat = False) form = forms [0] форма формы печати ["username"] = "your  username "form [" username "] =" password "# form.click () возвращает объект mechanize.Request # (см. HTMLForm.click .__ doc__, если вы хотите использовать только поддержку форм, а # не остальную часть механизации)  print urlopen (form.click ()). read ()  

В зависимости от того, как работает их система, этого может быть достаточно. Возможно, вам придется завязать какой-то куки-файл, чтобы поддерживать сеанс в то время, когда он включает соединение, но, с технической точки зрения, нет аргументов, почему они должны требовать этого.

Тогда вам просто нужно связать это с так что он получает вызов. Загрузка его из /etc/network/if-up.d должна работать, но я предлагаю вам прикрепить свой код к проверке, чтобы убедиться, что вы действительно находитесь в точке доступа, в которой работает ваш вход.

5
ответ дан 10 August 2018 в 10:12

Какая забавная проблема.

Хотя я уверен, что ответ ændrük, вероятно, сработает, я немного не согласен с тем, чтобы что-то зависящее от настольного программного обеспечения управляло доступностью сети.

Я бы посоветовал вам поиграть с библиотекой Mechanize Python. Вы можете установить его из репозиториев через:

  sudo apt-get install python-mechanize  

Затем получите скрипты. Вам нужно начать с выяснения структуры страницы, на которую вы отправляете. Вам нужно найти, где вы формируетесь, и какие поля нужно вводить для отправки. Как только вы это знаете, это действительно так просто, как просто написать быстрый маленький парсер и подателя. Механизация делает весь тяжелый подъем. Вот быстрый пример, адаптированный из их документов в формах :

  import sys из механизации импорта ParseResponse, urlopen, urljoin # заменить это на фактическую страницу входа #  необходимо выполнить некоторые исследования uri = "http://theloginpage.com/" response = urlopen (uri) forms = ParseResponse (response, backwards_compat = False) form = forms [0] форма формы печати ["username"] = "your  username "form [" username "] =" password "# form.click () возвращает объект mechanize.Request # (см. HTMLForm.click .__ doc__, если вы хотите использовать только поддержку форм, а # не остальную часть механизации)  print urlopen (form.click ()). read ()  

В зависимости от того, как работает их система, этого может быть достаточно. Возможно, вам придется завязать какой-то куки-файл, чтобы поддерживать сеанс в то время, когда он включает соединение, но, с технической точки зрения, нет аргументов, почему они должны требовать этого.

Тогда вам просто нужно связать это с так что он получает вызов. Загрузка его из /etc/network/if-up.d должна работать, но я предлагаю вам прикрепить свой код к проверке, чтобы убедиться, что вы действительно находитесь в точке доступа, в которой работает ваш вход.

5
ответ дан 13 August 2018 в 16:35
  • 1
    Замечательно, я не знал о механизме. Я взволнован, чтобы попробовать. – ændrük 18 February 2011 в 02:41

В зависимости от типа доступного портала на месте вы можете пройти аутентификацию через запрос POST, отправленный с помощью Wget (использовать данные Tamper, чтобы узнать, какие данные нужно отправить) или с помощью скрипта iMacros в Firefox.

Вы можете добавить скрипт к /etc/network/if-up.d, чтобы он запускался каждый раз при установлении сетевого соединения. Попросите сценарий проверить, в какой сети вы работаете с iwconfig, прежде чем что-либо делать, и не забудьте запустить команды с помощью sudo -u yourusername, чтобы вы не запускали ваш веб-браузер как root.

2
ответ дан 25 May 2018 в 22:56

В зависимости от типа доступного портала на месте вы можете пройти аутентификацию через запрос POST, отправленный с помощью Wget (использовать данные Tamper, чтобы узнать, какие данные нужно отправить) или с помощью скрипта iMacros в Firefox.

Вы можете добавить скрипт к /etc/network/if-up.d, чтобы он запускался каждый раз при установлении сетевого соединения. Попросите сценарий проверить, в какой сети вы работаете с iwconfig, прежде чем что-либо делать, и не забудьте запустить команды с помощью sudo -u yourusername, чтобы вы не запускали ваш веб-браузер как root.

2
ответ дан 25 July 2018 в 22:28

В зависимости от типа доступного портала на месте вы можете пройти аутентификацию через запрос POST, отправленный с помощью Wget (использовать данные Tamper, чтобы узнать, какие данные нужно отправить) или с помощью скрипта iMacros в Firefox.

Вы можете добавить скрипт к /etc/network/if-up.d, чтобы он запускался каждый раз при установлении сетевого соединения. Попросите сценарий проверить, в какой сети вы работаете с iwconfig, прежде чем что-либо делать, и не забудьте запустить команды с помощью sudo -u yourusername, чтобы вы не запускали ваш веб-браузер как root.

2
ответ дан 26 July 2018 в 21:46

В зависимости от типа доступного портала на месте вы можете пройти аутентификацию через запрос POST, отправленный с помощью Wget (использовать данные Tamper, чтобы узнать, какие данные нужно отправить) или с помощью скрипта iMacros в Firefox.

Вы можете добавить скрипт к /etc/network/if-up.d, чтобы он запускался каждый раз при установлении сетевого соединения. Попросите сценарий проверить, в какой сети вы работаете с iwconfig, прежде чем что-либо делать, и не забудьте запустить команды с помощью sudo -u yourusername, чтобы вы не запускали ваш веб-браузер как root.

2
ответ дан 31 July 2018 в 12:06

В зависимости от типа доступного портала на месте вы можете пройти аутентификацию через запрос POST, отправленный с помощью Wget (использовать данные Tamper, чтобы узнать, какие данные нужно отправить) или с помощью скрипта iMacros в Firefox.

Вы можете добавить скрипт к /etc/network/if-up.d, чтобы он запускался каждый раз при установлении сетевого соединения. Попросите сценарий проверить, в какой сети вы работаете с iwconfig, прежде чем что-либо делать, и не забудьте запустить команды с помощью sudo -u yourusername, чтобы вы не запускали ваш веб-браузер как root.

2
ответ дан 2 August 2018 в 03:54

В зависимости от типа доступного портала на месте, вы можете пройти аутентификацию через запрос POST, отправленный с помощью Wget (используйте Tamper Data , чтобы узнать, какие данные нужно отправлять) или с помощью скрипт iMacros в Firefox.

Вы можете добавить скрипт к /etc/network/if-up.d , чтобы он запускался каждый раз, когда сеть соединение установлено. Попросите сценарий проверить, в какой сети вы работаете с iwconfig , прежде чем что-либо делать, и не забудьте запустить команды с помощью sudo -u yourusername , чтобы вы не запускали свой веб-браузер как root.

2
ответ дан 4 August 2018 в 19:58

В зависимости от типа доступного портала на месте, вы можете пройти аутентификацию через запрос POST, отправленный с помощью Wget (используйте Tamper Data , чтобы узнать, какие данные нужно отправлять) или с помощью скрипт iMacros в Firefox.

Вы можете добавить скрипт к /etc/network/if-up.d , чтобы он запускался каждый раз, когда сеть соединение установлено. Попросите сценарий проверить, в какой сети вы работаете с iwconfig , прежде чем что-либо делать, и не забудьте запустить команды с помощью sudo -u yourusername , чтобы вы не запускали свой веб-браузер как root.

2
ответ дан 6 August 2018 в 04:00

В зависимости от типа доступного портала на месте, вы можете пройти аутентификацию через запрос POST, отправленный с помощью Wget (используйте Tamper Data , чтобы узнать, какие данные нужно отправлять) или с помощью скрипт iMacros в Firefox.

Вы можете добавить скрипт к /etc/network/if-up.d , чтобы он запускался каждый раз, когда сеть соединение установлено. Попросите сценарий проверить, в какой сети вы работаете с iwconfig , прежде чем что-либо делать, и не забудьте запустить команды с помощью sudo -u yourusername , чтобы вы не запускали свой веб-браузер как root.

2
ответ дан 7 August 2018 в 21:58

В зависимости от типа доступного портала на месте, вы можете пройти аутентификацию через запрос POST, отправленный с помощью Wget (используйте Tamper Data , чтобы узнать, какие данные нужно отправлять) или с помощью скрипт iMacros в Firefox.

Вы можете добавить скрипт к /etc/network/if-up.d , чтобы он запускался каждый раз, когда сеть соединение установлено. Попросите сценарий проверить, в какой сети вы работаете с iwconfig , прежде чем что-либо делать, и не забудьте запустить команды с помощью sudo -u yourusername , чтобы вы не запускали свой веб-браузер как root.

2
ответ дан 10 August 2018 в 10:12

В зависимости от типа доступного портала на месте, вы можете пройти аутентификацию через запрос POST, отправленный с помощью Wget (используйте Tamper Data , чтобы узнать, какие данные нужно отправлять) или с помощью скрипт iMacros в Firefox.

Вы можете добавить скрипт к /etc/network/if-up.d , чтобы он запускался каждый раз, когда сеть соединение установлено. Попросите сценарий проверить, в какой сети вы работаете с iwconfig , прежде чем что-либо делать, и не забудьте запустить команды с помощью sudo -u yourusername , чтобы вы не запускали свой веб-браузер как root.

2
ответ дан 13 August 2018 в 16:35

Другие вопросы по тегам:

Похожие вопросы: