Альтернатива команды пинг - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всем привет! Нужно проверять доступность хоста в локальной сети при этом не использовать пинг(ICMP). Как-то давно видел пример кода и кажется это была именно альтернатива пингу. Но вот не могу найти битую неделю =( Может кто подскажет как еще можно проверить доступность хоста, при это с выставлением таймаута, чтобы долго не ожидать ответа? Заранее спасибо за любую помощь!
причина этого нуждика описана вот здесь

Решение задачи: «Альтернатива команды пинг»

textual
Листинг программы
    Function checkIPExist(ByVal addr As String, ByVal por As String, ByVal tim As Double) As Boolean
        ' addr - ip адрес или сетевое имя
        ' por - номер порта
        ' tim - время ожидания отклика  в секундах
        Dim ipor As Integer
        ipor = CInt(por)
        Dim HostExist As Boolean = False
 
        Dim tcpClient = New Net.Sockets.TcpClient
        Dim ar = tcpClient.BeginConnect(addr, por, Nothing, Nothing)
        Try
            If Not ar.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(tim), False) Then
                tcpClient.Close()
                'MsgBox("offline")
                HostExist = False
            Else
                tcpClient.EndConnect(ar)
                tcpClient.Close()
                'MsgBox("online")
 
            End If
        Catch ex As Net.Sockets.SocketException
            If ex.ErrorCode = 10061 Then
                HostExist = True
            End If
            ' MsgBox("offline" & vbNewLine & ex.Message)
        Catch ex As Exception
            ' MsgBox("offline" & vbNewLine & ex.Message)
        End Try
        ar.AsyncWaitHandle.Close()
        Return HostExist
    End Function

Оцени полезность:

6   голосов , оценка 3.667 из 5