打印本文 打印本文 关闭窗口 关闭窗口
我写了个 Ping 模块 很实用!
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2302  更新时间:2009/4/23 18:31:38  文章录入:mintao  责任编辑:mintao
                  Msg = "unknown msg returned"
   End Select
   GetStatusCode = Msg
   Exit Function
Z:
   GetStatusCode = ""
End Function

Private Function Ping(sAddress As String, sDataToSend As String, ECHO As ICMP_ECHO_REPLY) As Long
   On Error GoTo Z
   Dim hPort As Long
   Dim dwAddress As Long
   dwAddress = inet_addr(sAddress)
   If dwAddress <> INADDR_NONE Then
      hPort = IcmpCreateFile()
      If hPort Then
         Call IcmpSendEcho(hPort, dwAddress, sDataToSend, Len(sDataToSend), 0, ECHO, Len(ECHO), PING_TIMEOUT)
         Ping = ECHO.status
         Call IcmpCloseHandle(hPort)
      End If
   Else
      Ping = INADDR_NONE
   End If
   Exit Function
Z:
   Ping = INADDR_NONE
End Function

''''(Ping函数)
''''  参数:目标IP地址
''''返回值:存在返回True,否则返回False
Public Function PingIp(ByVal szIp As String) As Boolean
    On Error GoTo Z
    Dim WSAD As WSADATA
    Dim ECHO As ICMP_ECHO_REPLY
    Dim ret As Long
    If WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS Then
       ret = Ping(Trim(szIp), "tanaya", ECHO)
       If InStr(1, GetStatusCode(ret), "success") <> 0 Then
          WSACleanup
          PingIp = True
          Exit Function
       End If
    End If
    PingIp = False
    Exit Function
Z:
    PingIp = False
End Function

会Delphi的朋友可以把这个模块移植,很简单,不敲键盘了.

''''-------------------------------------------
'''' 转载请注明出处
'''' 作者:唐细刚
'''' 邮箱:tanaya@163.com
''''-------------------------------------------

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口