'请试看这个 添加 Command1 修改下面你要检测的IP地址Private Sub Command1_Click() MsgBox IIf(CheckServ("192.168.1.1"), "服务器联线中", "服务器未联线") '你的服务器IP地址 End SubPublic Function CheckServ(Ipadr As String) As Boolean Dim aa$, bb$, fname$ CheckServ = False fname = "c:\tmpfile.txt" Open "c:\testip.bat" For Output As #1 Print #1, "@echo off" Print #1, "ping " & Ipadr & " >" & fname Close #1 If Dir(fname) <> "" Then Kill fname Call Shell("cmd /c " & "c:\testip.bat", vbHide) '延时5秒内是否得到文档 starttm = Timer Do DoEvents If Dir(fname) <> "" Then If FileLen(fname) > 10 Then Exit Do '得到文档即退出检测 End If Loop Until Timer >= starttm + 5 bb = "" If Dir(fname) <> "" Then Open fname For Input As #1 While Not EOF(1) Line Input #1, aa bb = bb & aa & vbCrLf Wend Close #1 End If CheckServ = IIf(InStr(bb, "Request") > 0, False, True) If Dir("c:\testip.bat") <> "" Then Kill "c:\testip.bat" End Function
on error goto errmsg '....... '........... exit sub errmsg: if err.number= 1223'连接失败的错误号,假设为1223 msgbox "连接失败" else MsgBox Err.Description & Chr(13) & Chr(10) & "代号:" & Err.Number end if
MsgBox IIf(CheckServ("192.168.1.1"), "服务器联线中", "服务器未联线") '你的服务器IP地址
End SubPublic Function CheckServ(Ipadr As String) As Boolean
Dim aa$, bb$, fname$
CheckServ = False
fname = "c:\tmpfile.txt"
Open "c:\testip.bat" For Output As #1
Print #1, "@echo off"
Print #1, "ping " & Ipadr & " >" & fname
Close #1
If Dir(fname) <> "" Then Kill fname
Call Shell("cmd /c " & "c:\testip.bat", vbHide)
'延时5秒内是否得到文档
starttm = Timer
Do
DoEvents
If Dir(fname) <> "" Then
If FileLen(fname) > 10 Then Exit Do '得到文档即退出检测
End If
Loop Until Timer >= starttm + 5
bb = ""
If Dir(fname) <> "" Then
Open fname For Input As #1
While Not EOF(1)
Line Input #1, aa
bb = bb & aa & vbCrLf
Wend
Close #1
End If
CheckServ = IIf(InStr(bb, "Request") > 0, False, True)
If Dir("c:\testip.bat") <> "" Then Kill "c:\testip.bat"
End Function
on error goto errmsg
'.......
'...........
exit sub
errmsg:
if err.number= 1223'连接失败的错误号,假设为1223
msgbox "连接失败"
else
MsgBox Err.Description & Chr(13) & Chr(10) & "代号:" & Err.Number
end if