Les mémos
Je débute...
Visites

 987449 visiteurs

 2 visiteurs en ligne

Recherche
 
Fermer

Tester la connexion à l'internet

Il existe plusieurs méthodes pour tester une connexion. Des fonctions comme LANconnection (Local Area Network) ou WANConnection (Wide Area Network) , ou plus ancienne, facilite cela; mais on chacune ses avantages et ses inconvénients.

Il existe pourtant un méthode qui a permet ce test de manière satisfaisante... le fameux PING !

On ouvre une invite de commande par la combinaison de touches [Windows] + R et on y tape CMD, ce qui ouvre la fenêtre. Là, un simple "PING <adresse IP> vous affichera le temps de réponse de l'adresse indiquée.

Il est ainsi possible de tester une adresse IP sur internet, l'adresse d'un serveur qui répond rapidement de préférence.

Oui, mais ACCESS dans tout cela ?

Et bien, on peut appeler cette commande PING par un Shell Access. La réponse du PING habituellement affichée dans la fenêtre sera détournée dans un fichier.

Pour rendre cela transparent, il suffit d'utiliser la fonction ci-dessous. On peut transmettre son IP favorite (de son hébergeur ou fournisseur d'accès), mais à défaut une adresse de serveur de Google sera utilisée.

Avant d'envoyer un émail ou plus généralement accéder à l'internet, un simple :

    If TestIP Then
        '/ accès internet
        '/ ici le code utile
    Else
        MsgBox "Pas de connexion à l'internet !"
    End If

La fonction :

Function TestIP(Optional sIP As String = "8.8.8.8") As Boolean
    '/ utilise la fonction fShellRun
    Dim strCommand As String
    Dim strPing As String
    ' Construction de la chaîne de commande
    strCommand = "%ComSpec% /C %SystemRoot%\system32\ping.exe -n 1 -w 500 " _
                 & sIP & " | " & "%SystemRoot%\system32\find.exe /i " _
                 & Chr(34) & "TTL=" & Chr(34)
    
    strPing = fShellRun(strCommand)
    
    If strPing = "" Then
        TestIP = False
    Else
        TestIP = True
    End If

End Function

et la sous-fonction :

Function fShellRun(sCommandStringToExecute) As String
    ' Cette fonction accepte une commande DOS sous forme de chaîne de caractères
    ' Elle exécute la commande dans un shell et écrit le résultat dans un fichier
    ' Ce fichier est ensuite lu et est retourné comme valeur par la fonction.
    Dim oShellObject, oFileSystemObject, sShellRndTmpFile
    Dim oShellOutputFileToRead, iErr
    ' Cochez la référence : Microsoft Scripting Runtime
    Set oShellObject = CreateObject("Wscript.Shell")
    Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
    sShellRndTmpFile = oShellObject.ExpandEnvironmentStrings("%temp%") & oFileSystemObject.GetTempName
    On Error Resume Next
    ' Execute la commande et effectue la redirection dans un fichier
    oShellObject.Run sCommandStringToExecute & " > " & sShellRndTmpFile, 0, True
    iErr = Err.Number

    On Error GoTo 0
    If iErr <> 0 Then
        fShellRun = ""
        Exit Function
    End If

    On Error GoTo err_skip
    ' On transmet à la fonction le contenu du fichier
    fShellRun = oFileSystemObject.OpenTextFile(sShellRndTmpFile, 1).ReadAll
    oFileSystemObject.DeleteFile sShellRndTmpFile, True

    Exit Function

err_skip:
    fShellRun = ""
    oFileSystemObject.DeleteFile sShellRndTmpFile, True

End Function


Catégorie : Les mémos - Net
Page lue 9 fois