Альтернатива команды пинг - 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