Bonjour à tous,

Je tente d'utiliser urllib pour remplir automatiquement les champs login et mot de passe de la page d'accueil de mon routeur DLINK
dans le but de m'y connecter automatiquement

Je rencontre cependant des problemes

Tout d'abord, voici à quoi ressemble le code HTML coté DLINK routeur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<div class="message">Login to the router : </div>
    <div class="loginbox">
    <span class="name">User Name</span>
    <span class="delimiter">:</span>
    <span class="value">
    <input type="text" id="loginusr" onkeydown="BODY.OnKeydown(event);" />
    </span>
    </div>
    <div class="loginbox">
    <span class="name">Password</span>
    <span class="delimiter">:</span>
    <span class="value">
    <input type="password" id="loginpwd" maxlength="15" onkeydown="BODY.OnKeydown(event);" />
    <input type="button" id="noGAC" value="Login" onClick="BODY.LoginSubmit();" />
    </span>
</div>
Par défaut le login est admin et le mot de passe est vide

J'ai donc tenté qqch de ce style

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
import cookielib
import urllib
import urllib2
 
url = 'http://192.168.16.1'
values = {'loginusr' : 'admin',
      'loginpwd' : ''}
 
data = urllib.urlencode(values)
cookies = cookielib.CookieJar()
 
opener = urllib2.build_opener(
 urllib2.HTTPRedirectHandler(),
 urllib2.HTTPHandler(debuglevel=0),
 urllib2.HTTPSHandler(debuglevel=0),
 urllib2.HTTPCookieProcessor(cookies))
 
response = opener.open(url, data)
the_page = response.read()
http_headers = response.info()
Sans succes
J ai egalement essayé d'utiliser la lib requests avec :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
import requests
s = requests.session()
login_data = dict(loginusr='admin', loginpwd='')
s.post('http://192.168.16.1', data=login_data)
Aucune de ces 2 solutions ne fonctionne
Qqun peut il me dire si j'ai fais une erreur ?
D'avance, je vous remercie