Làm thế nào để đăng nhập theo chương trình vào mạng loại hotspot?


8

Tôi thường kết nối với một mạng, mở, nhưng yêu cầu xác thực khóa trước khi sử dụng trong trang web. Có thể tự động hóa xác thực với một tập lệnh?

Câu trả lời:


5

Thật là một vấn đề thú vị.

Mặc dù tôi chắc chắn câu trả lời của ændrük có thể sẽ hoạt động, tôi hơi bất lợi khi để một cái gì đó phụ thuộc vào phần mềm máy tính để bàn quản lý tính khả dụng của mạng.

Tôi sẽ đề nghị bạn chơi xung quanh với thư viện Cơ chế của Python . Bạn có thể cài đặt nó từ kho thông qua:

sudo apt-get install python-mechanize

Sau đó nhận kịch bản. Bạn cần bắt đầu bằng cách tìm hiểu cấu trúc của trang bạn đang gửi tới. Bạn cần tìm nơi bạn hình thành đến và những lĩnh vực nào cần được nhập để gửi. Một khi bạn biết điều đó, nó thực sự đơn giản như chỉ cần viết một trình phân tích cú pháp và trình đệ trình biểu mẫu nhỏ nhanh chóng. Cơ khí làm tất cả các nâng nặng. Dưới đây là một ví dụ nhanh được điều chỉnh từ tài liệu của họ trên các biểu mẫu :

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

Tùy thuộc vào cách hệ thống của họ hoạt động, điều này có thể là đủ. Bạn có thể phải buộc trong một số tình trạng giật cookie để duy trì phiên hoạt động trong khi họ bật kết nối, nhưng về mặt kỹ thuật, không có lý do tại sao họ nên yêu cầu điều đó.

Sau đó, bạn chỉ cần buộc cái này vào hệ thống mạng để nó được gọi. Tải từ đó /etc/network/if-up.dsẽ hoạt động nhưng tôi khuyên bạn nên thêm tiền tố vào mã của mình bằng một kiểm tra để đảm bảo rằng bạn thực sự trên hotspot mà đăng nhập của bạn hoạt động.


Thật tuyệt vời, tôi không biết về cơ giới hóa. Tôi rất phấn khích để thử nó.
ændrük

2

Tùy thuộc vào loại cổng bị khóa tại chỗ, bạn có thể xác thực thông qua yêu cầu POST được gửi bằng Wget (sử dụng Tamper Data để tìm hiểu dữ liệu nào cần gửi) hoặc bằng cách sử dụng tập lệnh iMacros trong Firefox.

Bạn có thể thêm một tập lệnh để /etc/network/if-up.dlàm cho nó chạy mỗi khi kết nối mạng được thiết lập. Có kịch bản xác minh bạn đang kết nối với mạng nào iwconfigtrước khi làm bất cứ điều gì và chắc chắn bắt đầu sử dụng các lệnh sudo -u yourusernameđể bạn không chạy trình duyệt web của mình dưới quyền root.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.