' Checks if ping successfully reached specified address
Public Function IsAddressReachable(ByVal url As String) As Boolean
Dim host As String
host = ExtractDomain(url)
IsAddressReachable = IsHostReachable(host)
End Function
' Checks if ping successfully reached specified host (domain)
Public Function IsHostReachable(ByVal host As String) As Boolean
Dim pingResult As String
pingResult = GetPingResult(host)
If pingResult = "Connected" Then
IsHostReachable = True
Else
IsHostReachable = False
End If
End Function
' Extracts domain (host) from url address.
Public Function ExtractDomain(ByVal url As String) As String
If InStr(url, "//") Then
url = Mid(url, InStr(url, "//") + 2)
End If
If Left(url, 4) Like "[Ww][Ww][Ww0-9]." Then
url = Mid(url, 5)
End If
ExtractDomain = Split(url, "/")(0)
End Function
' Pings specific host.
Public Function GetPingResult(ByVal host As String) As String
Dim objPing As Object
Dim objStatus As Object
Dim strResult As String
host = Replace(host, "'", "")
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
ExecQuery("Select * from Win32_PingStatus Where Address = '" & host & "'")
'report the results
For Each objStatus In objPing
Select Case objStatus.StatusCode
Case 0: strResult = "Connected"
Case 11001: strResult = "Buffer too small"
Case 11002: strResult = "Destination net unreachable"
Case 11003: strResult = "Destination host unreachable"
Case 11004: strResult = "Destination protocol unreachable"
Case 11005: strResult = "Destination port unreachable"
Case 11006: strResult = "No resources"
Case 11007: strResult = "Bad option"
Case 11008: strResult = "Hardware error"
Case 11009: strResult = "Packet too big"
Case 11010: strResult = "Request timed out"
Case 11011: strResult = "Bad request"
Case 11012: strResult = "Bad route"
Case 11013: strResult = "Time-To-Live (TTL) expired transit"
Case 11014: strResult = "Time-To-Live (TTL) expired reassembly"
Case 11015: strResult = "Parameter problem"
Case 11016: strResult = "Source quench"
Case 11017: strResult = "Option too big"
Case 11018: strResult = "Bad destination"
Case 11032: strResult = "Negotiating IPSEC"
Case 11050: strResult = "General failure"
Case Else: strResult = "Unknown host"
End Select
GetPingResult = strResult
Next
Set objPing = Nothing
End Function
Comments
0 B
|0 👍
/0 👎
0 B
|👍
/👎