Tester la connexion à l'internet
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