Bagaimana cara mendaftar secara sistematis ke jaringan tipe hotspot?

8

Saya sering terhubung ke jaringan, yang terbuka, tetapi memerlukan otentikasi kunci-pass sebelum digunakan di halaman web. Apakah mungkin untuk mengotomatiskan otentikasi dengan skrip?

Vadim Peretokin
sumber

Jawaban:

5

Masalah yang menyenangkan.

Sementara saya yakin jawaban Åndrük mungkin akan berfungsi, saya sedikit tidak suka membiarkan sesuatu bergantung pada perangkat lunak desktop mengelola ketersediaan jaringan.

Saya sarankan Anda bermain-main dengan perpustakaan Mekanisasi Python . Anda dapat menginstalnya dari repositori melalui:

sudo apt-get install python-mechanize

Lalu dapatkan skrip. Anda harus mulai dengan mencari tahu struktur halaman yang Anda kirimkan. Anda perlu menemukan dari mana Anda datang dan bidang apa yang harus dimasukkan untuk mengirim. Setelah Anda tahu itu, itu benar-benar sederhana seperti hanya menulis parser dan submitter bentuk kecil cepat. Mekanisasi melakukan semua pengangkatan berat. Berikut adalah contoh cepat yang diadaptasi dari dokumen mereka pada formulir :

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()

Bergantung pada bagaimana sistem mereka bekerja, ini mungkin cukup. Anda mungkin harus mengikat beberapa cookie untuk menjaga sesi tetap hidup saat mereka menghidupkan koneksi, tetapi secara teknis, tidak ada argumen mengapa mereka harus meminta itu.

Maka Anda hanya perlu mengikat ini ke dalam sistem jaringan sehingga dipanggil. Memuatnya dari /etc/network/if-up.dseharusnya berfungsi, tetapi saya sarankan Anda awali kode Anda dengan cek untuk memastikan Anda benar-benar di hotspot yang berfungsi untuk masuk.

Oli
sumber
Hebat, saya tidak tahu tentang mekanisasi. Saya senang mencobanya.
ændrük
2

Bergantung pada jenis portal captive di tempat, Anda mungkin dapat mengautentikasi melalui permintaan POST yang dikirim menggunakan Wget (gunakan Tamper Data untuk mempelajari data apa yang perlu dikirim) atau dengan menggunakan skrip iMacros di Firefox.

Anda dapat menambahkan skrip untuk /etc/network/if-up.dmembuatnya berjalan setiap kali koneksi jaringan dibuat. Minta skrip memverifikasi jaringan apa yang Anda iwconfiggunakan sebelum melakukan sesuatu, dan pastikan untuk memulai perintah menggunakan sudo -u yourusernamesehingga Anda tidak menjalankan browser web Anda sebagai root.

ændrük
sumber