加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

VBS 使用 ping 来检验网络情况

(2013-06-17 17:49:25)
分类: VBScript
Const conErr = -2
Function Ping(ByVal Server)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'过程说明:
' 1)   原型 Ping(ByVal 服务器)
' 2)    ErrLevel返回值:
'
'    |值          |标志        |描述
'     -1          True         网络畅通
'      0          False        网络有误
'     -2          conErr       网址为空
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Dim oWMI, oPing
    If IsEmpty(Server) Then
        Ping = conErr : Exit Function
    End If
    Set oWMI = GetObject("winmgmts:\\.\root\cimv2")
    
    Set oPing = oWMI.ExecQuery(_
    "select * from Win32_PingStatus where address ='" & Server & "'")
    
    For Each Result in oPing
        If IsNull(Result.StatusCode) Or Result.StatusCode <> 0 Then
            Ping = False
        Else
            Ping = True
        End If
    Next
    Set oWMI = Nothing : Set oPing = Nothing
End Function

' 目测网卡禁用时上述代码失效。

' 以下是另一版本
' 利用批处理命令
Const conErr = -2
Function Ping(ByVal Server)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'过程说明:
' 1)   原型 Ping(ByVal 服务器)
' 2)    ErrLevel返回值:
'
'    |值          |标志        |描述
'     -1          True         网络畅通
'      0          False        网络有误
'     -2          conErr       网址为空
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Dim WshShell, intState, Args
    If IsEmpty(Server) Then
        Ping = conErr : Exit Function
    End If
    Args = " -n 1"
    Set WshShell = WScript.CreateObject("WScript.Shell")
    intState = WshShell.run("ping.exe " & Server & Args, 0, True)
    If intState = 0 Then
        Ping = True
    Else
        Ping = False
    End If
    Set WshShell = Nothing
End Function

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有