IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Créer une tentative de Connection a une page WEB


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut Créer une tentative de Connection a une page WEB
    Bonjour a tous!

    Voila pour faire simple et clair, j'ai un modem Routeur Netgear, et ma ligne adsl et quelque peu instable selon les jours.

    Un simple reboot du modem resoud en générale ce probleme.Mais pour rebooter celui ci je dois me connecter a une page Web qu'il heberge.

    Ce que je veux faire, c'est faire un programme qui tourne en Daemon si possible qui ne prends pas trop de ressource pour :

    A chaque Heure tenter de se connecter a Google.fr (par exemple) si la connection echoue qu'il se connect sur l'adresse de reboot de mon routeur(je connais cette adresse)

    Donc je sais qu'il faut que j'utilise la fonction TIME, le module http et encapsuler ous ca avec un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if time.time()%3600 = 1
    try : connection a google
    except: connection au routeur
    end if
    Donc j'ai une question.

    Est ce que ce genre de programme serait du genre a tourner dans le vide et mettre mon µprocess a 100%?

    Si vous avez un autre solution pour eviter cela merci de me la faire parvenir.
    Desole pour la synthaxe qui est surment fausse car je saute de langage en langage ces derniers temps

    A oui ? Euhhhh Pour faire un deamon?? Vous avez des pistes?


    Cordialement PaRP1
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Regarde du côté des threads, il y a de quoi faire pour la temporisation et le daemon
    Pour les requêtes web il y a urllib ou bien les sockets pour une simple tentative de connexion

  3. #3
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    OK merci j'ai fait quelque test avec urllib.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import urllib
     
    def function():
        try:
            urllib.urlopen("http://www.goo")       
            print "connection effectuée sur google.fr"
        except IOError:
            urllib.urlopen("http://www.google.com")
            print "connection effectuée sur google.com"

    Normalement la il devrait m'imprimer "connection effect.... google.com" pourtant il me dit qu'il est sur FR. OU alors j'ai mal compris la fonction du try...

    Pour moi c'est normal qu'il imprime qu'il se connecte a google.fr puisque je lui demande d'essayer de le faire....entre nous c'est pas tres dur! XD mais comme il echoue il devrait essayer de se connecter a google.com....

    A mon avis je fais une tres grosse erreur...

    Ce que je veux faire c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Tentative de connection sur blabla.com
    si la tentative echoue connection sur 123.123.123.123
    Juste une question est ce que l'on peut se connecter avec sur un HTTP securisé par un login+passwd comme sur une interface routeur par exemple?

    JE sais que pour se connecter sur un FTP ya ce qu'il faut mais pour une URL...

    Si j'ai bien compris le principe avec les threads, il faut que japplique un timer sur mon thread qui lui executera toutes les heures ou demi heure une tentative de connexion...


    Cordialement. Je vous en dirai plus ce soir....par ce que la je suis au travail.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  4. #4
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Pour ce qui est du try, c'était bon. Mais apparement il se connecte a la page d'erreur de l'explorateur Web.

    Donc je ferais autrement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Tentative de connection pendant 2 secondes
    Si connection echouée
    Connection sur le routeur pour reboot de celui ci!
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Pour la tentative de connexion, comme dit, les sockets sont suffisants

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import socket
     
    S = socket.socket()
    S.settimeout(2.0)
    try:
        S.connect(("www.google.fr", 80))
    except socket.timeout:
        #Connexion échouée
    else:
        #Connexion réussie

  6. #6
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    Salut les gens, je pense que j'ai peut etre résolu le probleme.

    Du moins si j'ai bien fait les choses, mais malheureusement je ne peut pas tester cela maintenant car j'ai programmé ca le midi au boulot et le firewall me coupe l'acces a IDLE.
    J'essayerai plus tard dans la console.

    Je vous mets le code!

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    import socket,cookielib,urllib,urllib2,threading,time
     
     
    def testconnexion():
        Socket=socket.socket()
        Socket.settimeout(2.0)
        try:
            Socket.connect(('www.google.fr',80))
        except socket.timeout:
            print "connexion Echoue,reboot du routeur"
    	reboot()	
     
        else:
            print "Connexion reussie, tout va bien sur la ligne."
     
    def reboot():
    	login="admin"
    	password="password"
     
     
    	cookiejar=cookielib.CookieJar()
    	urlOpener=urllib.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
    	values={'login':login,'password':password)
    	data=urllib.urlencode(values)
    	request=urllib2.Request("http://192.168.0.1/",data)
    	url=urlOpener.open(request)
    	page=url.read(100)
    	print page +"Reboot du routeur en cours"
     
     
    def MyTimer(tempo = 60):
    	threading.Timer(tempo, MyTimer, [tempo]).start()
        	## verification de la proprete du timer
        	print time.clock()
        	## Reste du traitement
    	testconnexion()
    Il reste plus qu'a taper J'ai peur que lorsque je me reconnecte dans 60secondes il me dise qu'il l'est deja (si la ligne est bonne)? Est ce que je peux deconecte un socket (une fois que j'ai vu que c'était bon).
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

Discussions similaires

  1. [HTML] Créer une notification de connection sur une page web
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 28
    Dernier message: 17/03/2008, 18h52
  2. [OpenOffice][Base de données] [macro] connection a une base de données dans une macro
    Par Eruil dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 23/04/2007, 16h19
  3. Réponses: 1
    Dernier message: 03/04/2007, 08h57
  4. Réponses: 2
    Dernier message: 22/03/2007, 15h06
  5. Réponses: 5
    Dernier message: 02/10/2006, 17h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo