Альтернатива команды пинг - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д