Python logowanie na router TP-LINK W8901G


(Stan19) #1

Witam. 

Mam za zadanie napisać skrypt w pythonie który będzie analizował ilość błędów crc oraz brak dostępu do internetu wszystko to będzie zapisywał do pliku wraz z datą. Chce to zrobić za pomocą requests lecz już przy samym logowaniu mam problem którego wcześniej nie spotkałem. Otóż po wysłaniu requesta nie jestem zalogowany na router tylko jest odpalana strona logowania.

Analizując dane jakie są wysyłane do routera:

oraz kod źródłowy strony logowania:

http://wklej.org/id/1933323/

Napisałem takie coś:

import requests
plik = open('plik.html', 'w')
url = 'http://192.168.1.1/login_security.html'

payload = {
    'tipsFlag': '0',
    'timevalue': '0',
    'Login_Name': 'admin',
    'Login_Pwd': 'Ha2S%2BeOKqmzA6nrlmTeh7w%3D%3D',
    'uiWebLoginhiddenUsername': '21232f297a57a5a743894a0e4a821fc3',
    'uiWebLoginhiddenPassword': '5a690d842935c51f26f473e025c1b95a'
}

with requests.Session() as s:
    p = s.post(url,data=payload)
    p = s.get('http://192.168.1.1/rpSys.html')
    plik.write(p.text)
plik.close()

Oczywiście hasło już tutaj wysyłane już jako zaszyfrowane.

 


(Barmazu) #2

A dlaczego hasło jest zaszyfrowane? Na stronie logowania routera też w pole “Hasło” też wpisujesz zaszyfrowane? :slight_smile:


(enedil) #3

Jeśli to JS szyfruje, to jest to wymagane.


(Barmazu) #4

To lipeczka straszna, jak jest posolone to tyle.

 A w takim razie polecam Selenium.

https://selenium-python.readthedocs.org/en/latest/getting-started.html

I przykład logowania:

http://www.thetaranights.com/login-to-a-website-using-selenium-python-python-selenium-example/