Use HostAvailable to ping an IP. Returns TestResult structure.
Imports System.Net
Imports System.Net.NetworkInformation
Imports System.Text
Public Class PingTest
Public Structure TestResult
Dim IsAvailable As Boolean
Dim ErrorMsg As String
Dim Ex As Exception
End Structure
Public Function HostAvailable(ByVal IPAddress As String) As TestResult
Dim result As New TestResult
If Not IsValidIP(IPAddress) Then
result.IsAvailable = False
result.ErrorMsg = "Invalid IP Address"
Return result
Exit Function
End If
Dim pingSender As Ping = New Ping
Dim pingOptions As PingOptions = New PingOptions
pingOptions.DontFragment = True
Dim data As String = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Dim buffer() As Byte = Encoding.ASCII.GetBytes(data)
Dim timeOut As Integer = 150
Dim reply As PingReply
Try
reply = pingSender.Send(IPAddress, timeOut, buffer, pingOptions)
If reply.Status = IPStatus.Success Then
result.IsAvailable = True
Else
result.IsAvailable = False
result.ErrorMsg = reply.Status.ToString
End If
Return result
Catch ex As Exception
result.IsAvailable = False
result.ErrorMsg = ""
result.Ex = ex
Return result
End Try
End Function
Function IsValidIP(ByVal IP As String) As Boolean
'Check for zero length
If IP.Length = 0 Then
Return False
End If
Dim IPx As IPAddress = Nothing
Dim valid As Boolean = System.Net.IPAddress.TryParse(IP, IPx)
If valid Then
'Just because IP can be parsed, it doesn't mean it is a valid IP Address
'TryParse does a great job of coercing a value into a valid IP address,
'so compare the input IP to the result of the TryParse.
If valid And IPx.ToString.CompareTo(IP) = 0 Then
IsValidIP = True
End If
IPx = Nothing
Else
Return False
End If
End Function
End Class

Sign In
Register
Help


MultiQuote