[R] Fonction ping et récupération des erreurs.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

[R] Fonction ping et récupération des erreurs.

#1

Message par tutu »

Bonsoir,

j'aimerais comprendre comment fonctionne les erreurs avec la fonction ping.

Avec mon code actuel lorsque je désactive mon wifi, mon scripte me signal que google n'est plus joignable mais pour les autres adresses IP du reseaux local, il me les trouve toujours joignable puisque je n'ai pas de fichier de log de créé.

voici le code en question:

Code : Tout sélectionner

;verifie le reseau en permanence.
#include <file.au3>
global $nomfichier, $nbreligne, $ip, $erreur, $nomrepertoire, $erreurtext, $i, $x
HotKeySet("{ESC}", "quitter"); quitte le programme avec la touche escape en cas de probleme 
    
$i=0
while $i=0


If Not _FileReadToArray("ip.txt",$ip) Then ; lis les lignes du fichier une par une en utilisant un array.
   MsgBox(4096,"Error", "impossible de lire le fichier ip.txt erreur:" & @error)
   Exit
EndIf



For $x = 1 to $ip[0]
    ;Msgbox(0,'Record:' & $x, $ip[$x])
$erreur = ping($ip[$x],250)

;$erreur=ping ("192.168.1.145",250)
    sleep(100)
    ;msgbox(0,"",$ip[$x] & "    " & $erreur)
    if  $erreur==0 Then ; si le ping ne repond pas.
        $nomrepertoire=$ip[$x] & "\" & @MDAY & "-" & @mon & "-" & @year
        $nomfichier=@MDAY & "-" & @mon & "-" & @year & " A " & @HOUR & "H" & ".txt"
        
            ;Switch @error ; on indique à quoi correspond le numero d'erreur. Les numéros d'erreur n'ont pas l'air fonctionnel.
                
                ;case 1
                ;   $erreurtext="Host is offline"
                ;case 2
                ;   $erreurtext="Host is unreachable"
                ;case 3
                ;   $erreurtext="Bad destination"
                ;case 4 
                ;   $erreurtext="Other errors"
            ;EndSwitch  
        
        
        
        DirCreate($nomrepertoire)   ; le repertoire se creer seulement si il n'existe pas.
            
            if  FileExists($nomrepertoire & "\" &$nomfichier) Then
                ; le fichier existe, j'écris dedans en allant à la ligne suivante @crlf
                FileWrite($nomrepertoire & "\" &$nomfichier,@CRLF & "une erreur reseau est survenue à " & @hour & "H " & @min & "min " & "et " & @sec & "sec "); &"erreur " & $erreur & " : " & $erreurtext)
            
            Else ; le fichier de log n'existe pas donc je le créé
                _FileCreate($nomrepertoire & "\" &$nomfichier)
                sleep(100)
                FileWrite($nomrepertoire & "\" &$nomfichier,"une erreur reseau est survenue à " & @hour & "H " & @min &"min " & "et " & @sec &"sec " &"erreur "); & $erreur & " : " & $erreurtext )
            EndIf
    
    
    EndIf
    
next

WEnd

func quitter ()
    Exit
    EndFunc
PS: il faut rentrer les adresses à verifier dans le fichier ip.txt.
Modifié en dernier par tutu le mar. 03 août 2010 20:41, modifié 1 fois.
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [..] Fonction ping et récupération des erreurs.

#2

Message par tutu »

Personne à une petite idée d'ou vient le problème?
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Fonction ping et récupération des erreurs.

#3

Message par SrBelial »

Je peux te dire que sur mon pc qui ne peut pas envoyer de pings
(ils sont bloqués par le réseau), j'ai bien tous les répertoires avec les fichiers de log qui se créent, pour chaque adresse présente dans le fichier ip.txt

du coup je serai tenté de dire que ton script fonctionne très bien (enfin du moins pour ce qui est du résultat en cas d'erreur), et que tu devrais chercher une autre source d'erreur ....
essaie de réaliser les pings depuis une fenêtre CMD peut être ...
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [R]Fonction ping et récupération des erreurs.

#4

Message par tutu »

Je viens de retester ça marche impeccable. Je comprend pas du tout pourquoi ça marchais pas Oo. On va mettre ça sur le compte de la fatigue xD.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Fonction ping et récupération des erreurs.

#5

Message par sylvanie »

Bonsoir
j'ai une question toute bête :
la carte wifi est elle la seule carte réseau connectée de votre PC ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [R] Fonction ping et récupération des erreurs.

#6

Message par tutu »

Oui, plus de wifi plus de communication avec le reseau, ce qui m'etonne quand meme c'est que j'avais fait un test de ping sous dos et que celui ci etait negatif.

Ou alors il peut se produire un probleme d'écriture des dossiers aléatoires?
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [R] Fonction ping et récupération des erreurs.

#7

Message par sylvanie »

afin d'isoler le problème, que revois un simple

Code : Tout sélectionner

consolewrite(ping(une_adresse_locale))
quand la carte est désactivée ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [R] Fonction ping et récupération des erreurs.

#8

Message par tutu »

Avec ou sans la carte activée, je reçois la meme valeur qui est 1 pour ce code:

Code : Tout sélectionner

$toto=consolewrite(ping("192.168.1.1",250))

MsgBox(0,"",$toto)
edit: Apres réutilisation de mon script, j'ai de nouveau rencontrer le probleme bien sur... A prioris, j'ai du désactivé 2 fois mon wifi pour que les fichiers soient créés (1 à chaque lancement) et pour la bonne blague la troisieme fois ma fais planter explorer windows que j'ai du relancer manuellement :p.
edit2: demain je le testerais avec un cable, c'est ça le plus important.
PS: je suis sous vista.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Fonction ping et récupération des erreurs.

#9

Message par Tlem »

Il est normal que $toto vous renvoi toujours 1, car dans votre code, $toto est égal au retour de la fonction ConsoleWrite et non pas au retour de Ping. :roll:

Si vous voulez la valeur de retour de Ping, modifiez votre code comme ceci :

Code : Tout sélectionner

MsgBox(0,"",ping("192.168.1.1",250))
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [R] Fonction ping et récupération des erreurs.

#10

Message par tutu »

avec votre exemple j'obtiens toujours 1 en étant connecté ou déconnecté. Il faut egalement rajouté que en floodant sur l'activation du script, je me rend compte que pendant la periode de desactivation le code passe en 6, 3 et 4 puis revient sur 1.

Et je confirme qu'il m'est alors bien impossible de réussir mon ping via la commande CMD.

J'ai pas encore eu le temps de tester sur une sortie connecté en rj45 8 points...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Fonction ping et récupération des erreurs.

#11

Message par Tlem »

tutu a écrit :avec votre exemple j'obtiens toujours 1 en étant connecté ou déconnecté.
Cela n'est pas possible, car la commande Ping renvoi le temps du ping et en cas d'erreur elle renvoi 0.
Return Value
Success: Returns the roundtrip-time in milliseconds ( greater than 0 ).
Failure: Returns 0 if host is not pingable or other network errors occurred and sets @error. (See Remarks)

Remarks
When the function fails (returns 0) @error contains extended information:
1 = Host is offline
2 = Host is unreachable
3 = Bad destination
4 = Other errors
Donc si vous avez toujours 1, c'est que vous êtes toujours connecté.
J'ai testé le code sur mon portable avec Wifi et Ethernet.
- Si Wifi désactivé => 0
- Si Wifi déconnecté => 0
- Si Ethernet désactivé => 0
- Si Ethernet débranché => 0
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
tutu
Niveau 3
Niveau 3
Messages : 36
Enregistré le : sam. 01 mars 2008 16:43
Status : Hors ligne

Re: [R] Fonction ping et récupération des erreurs.

#12

Message par tutu »

Après moult essaie de nouveau avec le wifi seulement 2 fois sur 6 j'ai réussi à avoir des 0 zéros après la désactivation du wifi. Le problème semble aléatoire...
Répondre