首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb6.0如何实现ping,当不通时,丢包超过10个时才提示网络不通

2012-04-24 
vb6.0怎么实现ping,当不通时,丢包超过10个时才提示网络不通用ping实现,当丢包超过十个时才提示网络不通[解

vb6.0怎么实现ping,当不通时,丢包超过10个时才提示网络不通
用ping实现,当丢包超过十个时才提示网络不通

[解决办法]
新建一个模块,名字任意,把以下代码复制进去

VB code
Option ExplicitPublic Const INADDR_NONE As Long = &HFFFFFFFFPublic Const PING_TIMEOUT As Long = 1000Public Type ICMP_ECHO_REPLY  Address         As Long  status          As Long  RoundTripTime   As Long  DataSize        As Long  DataPointer     As Long  Data            As String * 250End TypePublic ECHO As ICMP_ECHO_REPLYPublic Declare Function inet_addr Lib "WSOCK32.DLL" (ByVal s As String) As LongPublic Declare Function IcmpCreateFile Lib "icmp.dll" () As LongPublic Declare Function IcmpSendEcho Lib "icmp.dll" (ByVal IcmpHandle As Long, _    ByVal DestinationAddress As Long, ByVal RequestData As String, ByVal RequestSize As Long, _    ByVal RequestOptions As Long, ReplyBuffer As ICMP_ECHO_REPLY, ByVal ReplySize As Long, _    ByVal Timeout As Long) As LongPublic Declare Function IcmpCloseHandle Lib "icmp.dll" (ByVal IcmpHandle As Long) As LongPublic Function Ping(ip As String) As Integer  Dim mystr As String  Dim hPort As Long   mystr = inet_addr(ip)     If mystr <> INADDR_NONE Then       hPort = IcmpCreateFile()        If hPort Then           Call IcmpSendEcho(hPort, mystr, 0, 0, 0, ECHO, Len(ECHO), PING_TIMEOUT) '发送回响请求报文,返回回响应答报文           Call IcmpCloseHandle(hPort)        End If        Ping = ECHO.RoundTripTime'       If ECHO.status = 0 Then ping = True Else ping = False'        MsgBox ECHO.Address       '显示网络计算机地址'        MsgBox ECHO.RoundTripTime & " ms"      '显示网络链接延迟时间'        MsgBox ECHO.DataSize & " bytes  显示数据包大小"'        MsgBox ECHO.DataPointer   End IfEnd Function 

热点排行
Bad Request.