jak mogę automatycznie zalogować się do sieci za pomocą portalu dostępowego w systemie Windows?

15

Mam w biurze sieć WI-FI, która wymaga zalogowania się za pomocą portalu typu captive (wymaga zalogowania się przy użyciu nazwy użytkownika i hasła).

Chciałbym w jakiś sposób uruchomić skrypt, który automatycznie się loguje, gdy tylko połączę się z siecią (bez konieczności uruchamiania przeglądarki i utrzymywania jej otwartości).

Co dziwne, udało mi się znaleźć takiego klienta dla Androida ( CoovaAX, który nie jest już dostępny), ale nie jednego dla systemu Windows (mam Windows 7, jeśli ma to znaczenie).

Czy ktoś ma na to proste rozwiązanie? Wolę nie spędzać czasu na kodowanie własnego narzędzia do tego.

Kamień Assafa
źródło
Czy ktoś wydał program mający rozwiązać ten problem w ciągu dwóch lat? Istnieją rozsądne rozwiązania dla Androida ( play.google.com/store/apps/… ) i iOS).
Jess Riedel
Również Meta: jak zwrócić uwagę na to pytanie? Nie mogę zapytać o własną wersję, ponieważ byłaby to kopia, ale odpowiedź tutaj jest całkowicie nieaktualna i chciałbym, aby świeże oczy rzuciły okiem.
Jess Riedel
@JessRiedel Opublikowałem nową odpowiedź, która działa teraz i zawiera link do pełnego przewodnika .
Menasheh

Odpowiedzi:

7

Nie wiem o prostych ... Używam narzędzia o nazwie webinject.pl do testowania stron internetowych. Jest to skrypt perla, który pozwala na określenie danych wejściowych i oczekiwanych rezultatów i może być łatwo skonfigurowany do tego. Uruchomienie go może zająć godzinę.

Co do tego, jak to zautomatyzować. Harmonogram zadań systemu Windows jest dość niezawodny i może wyzwalać mnóstwo zdarzeń. Możesz powiązać go ze zdarzeniem logowania lub wpisem dziennika zdarzeń lub po prostu uruchamiać go co 5 minut (to trochę bolesne). Na przykład dostaję zdarzenie 32 w dzienniku systemowym, gdy nawiązuję połączenie sieciowe. To może to zrobić.

uSlackr
źródło
Dzięki. Nie wiem, czy to całkowicie rozwiązuje mój problem, myślę, że może połączyć się z witryną i wysłać moje dane uwierzytelniające, ale nadal musiałbym automatycznie go uruchomić po podłączeniu do sieci Wi-Fi firmy. Masz pomysł, jak to zrobić? Czy może uda mi się złapać wydarzenie za pomocą programu planującego?
Assaf Stone
Dodałem więcej szczegółów na temat uruchamiania.
uSlackr
@ uSlackr Czy byłbyś w stanie podać kod użyty do tego?
Cameron
@Cameron Który kod? Webinject.pl jest dostępny do pobrania. plik konfiguracyjny XML będzie specyficzny dla twojego przypadku użycia.
uSlackr
Tak, czy mogę zobaczyć XML jako przykład? Dzięki
Cameron
5

Możesz użyć lynx (wersja z obsługą SSL) - przeglądarki tekstowej - z cmd_argsplikiem skryptu zawierającym polecenia potrzebne do zalogowania. Możesz wygenerować taki plik skryptu, logując się raz raz w Wi-Fi za pomocą lynxa i logując dane wejściowe. Zrób to, wywołując rysia z następującym argumentem:

lynx.exe -cmd_log =% USERPROFILE% \ lynxlog.txt`

Następnie możesz zmienić nazwę tego pliku i użyć go, wywołując lynx w następujący sposób:

lynx.exe -cmd_script = NAZWA_PLIKU

Umieść to w pliku wsadowym. (Użyj pełnej ścieżki do pliku wykonywalnego rysia lub ustaw tę ścieżkę w zmiennej środowiskowej PATH).

Gdy już zaczniesz działać, wykonaj zaplanowane zadanie uruchamiane przez identyfikator zdarzenia 10000w źródle NetworkProfiledziennika, Microsoft-Windows-NetworkProfile/Operationalktóry go wywołuje:

Przykład wyzwalacza Harmonogramu zadań

Osobiście łączę to z, iexpress.exeaby uruchomić to ukryte w tle i upewnić się, że zaplanowane zadanie jest uruchomione, nawet jeśli nie jestem zalogowany. Właśnie skonfigurowałem to na komputerze kilka tygodni temu i działa świetnie!

Źródło: Mój artykuł na temat automatyzacji logowania do portalu Captive Portal .

Menasheh
źródło
1

Robiłem to w przeszłości za pomocą harmonogramu zadań Windows i skryptu php + mysqllite. Skrypt php + mysqllite właśnie sprawdził, czy może dotrzeć do Google, jeśli został przekierowany, sprawdził, czy ma procedurę dla domeny, do której został przekierowany, jeśli tak, to go uruchomił. Mysqllite miał przechowywać pliki cookie dla bezgłowej przeglądarki, którą zaimplementowałem w php. Prawdopodobnie byłoby o wiele mniej pracy, aby użyć loginu typu fatmonkey do zalogowania się. (z wadą jest to, że przeglądarka wyskakuje i robi rzeczy za każdym razem, gdy uruchamiany jest harmonogram).

Wyzwalacz harmonogramu zadań będzie się różnić w zależności od maszyny. Miałem jednego laptopa, który rejestrowałby połączenia Wi-Fi jako zdarzenia i zawierały ssid, dzięki czemu mogłem filtrować, by uruchamiać tylko te, na których mi zależało.

Na moim obecnym laptopie wydaje się, że jedynym zdarzeniem, które niezawodnie zostanie uruchomione, jest połączenie klienta DHCP. Oczywiście to frytki za każdym razem, gdy otrzymuję adres IP i nie mówią mi SSID.

Za pomocą przeglądarki zdarzeń systemu Windows możesz sprawdzić, które zdarzenia są dostępne do uruchomienia. Właśnie trzykrotnie włączałem i wyłączałem Wi-Fi i sprawdzałem, które zdarzenia zostały uruchomione 3 razy w ciągu ostatniej godziny.

Stóg
źródło