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