Ping d'une liste de poste : whosbad

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 638 fois - Téléchargée 28 fois

Contenu du snippet

un programme de moins de 50 lignes qui permet de tester l'activité IP d'une liste de poste pour voir si l'un d'entre eux n'est pas KO. La liste est saisie dans un fichier à part (dans mon cas 'posteAtester.lst').
je passe par un fichier qui se crée sur le répertoire, il faut penser à autoriser l'écriture.

Source / Exemple :


<%
    Set MyShell = CreateObject("WScript.Shell")
    Set MyFiles = CreateObject("Scripting.FileSystemObject")

szPathFile= "resip.txt"
szListIPFile = "PosteAtester.lst"
'récup des adresses ip à tester
Set FileListDesIP = MyFiles.OpenTextFile(server.mappath(szListIPFile), 1) ' for reading
do
    On Error Resume Next
    ' lecture du nouveau rep à créer
    szIPATester = FileListDesIP.ReadLine
    If Err.number = 62 Then ' si fin du fichier
        Exit do
    End If

    On Error GoTo 0
    f_doPing(szIPATester)
loop

function f_doPing(szAdressIP)
    szExec="%comspec% /c ping.exe -n 1 -a" & " " & szAdressIP & " " & ">" & server.mappath(szPathFile)
    Return = MyShell.Run(szExec, 0, True) 
    Set TempFile =MyFiles.OpenTextFile(server.mappath(szPathFile))
    szResult = Tempfile.Readall
    
    ' récupération du nom du serveur si il est disponible
    if instr(szResult, "[" & szAdressIP & "]") > 0 then
        posDeb =instr(szResult, "'ping' sur ") +11
        posfin =instr(szResult, "[" & szAdressIP & "]")
        sznomServeur = mid(szResult, posdeb, posfin-posdeb)
        '   response.write("szResult='" & szResult & "'")
        'sznomServeur = ""
    else
        sznomServeur = "IP"
    end if
    
    If instr(szResult, "ponse ") > 0 Then
'    If instr(szResult, "(perte 0%)") > 0 Then
        response.write(sznomServeur& " : " & szAdressIP & " --> OK" & vbcrlf)
    Else
        response.write("<B>" & sznomServeur & " : " & szAdressIP & " --> KO</B>" & vbcrlf)
    End if
    response.write("<br>")
    tempfile.close
    'tempfile.delete
end function
%>

A voir également

Ajouter un commentaire

Commentaires

angenoir999
Messages postés
19
Date d'inscription
vendredi 25 août 2006
Statut
Membre
Dernière intervention
2 octobre 2008

Bonjour

moi c'est pareil, sur la même ligne de code.

Pourtant et j'ai bien vérifier, tous les droits sont bons et la config IIS aussi (j'ai mis ce que tu as dit).

Je ne comprend pas.

Angenoir999
cs_defrance
Messages postés
24
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
20 novembre 2011

Après m'etre repencher sur le code, je précise qu'il faut AUSSI ajouter dans le paramétrage de IIS du répertoire l'autorisation d'executer des executables (comme ping) en plus des scripts...
cs_ermo
Messages postés
5
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
27 novembre 2006

Excuse-moi de t'embèter mais ça par ex, ça marche.

<% Don_A_Ecrire = "BLABLA" %>
<% Set FSO = Server.CreateObject("Scripting.FileSystemObject") %>
<% Fich_TEST= Server.MapPath("Fich_TEST.txt") %>
<% set inF = FSO.OpenTextFile(Fich_TEST,2,true) %>
<% inF.writeLine Don_A_Ecrire %>
<% inF.close %>
cs_defrance
Messages postés
24
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
20 novembre 2011

et c'est justement cette ligne qui crée le fichier avec la commande juste au dessus :
ping.exe -n 1 -a AdressIP > fichier
AdressIP : l'adresse ou le poste à pinger
fichier : le fichier qui est crée avec le résultat du ping
cs_ermo
Messages postés
5
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
27 novembre 2006

OK, mais c'est cette ligne qui génère l'erreur.

Return = MyShell.Run(szExec, 0, True)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.