MCSE技术论坛

首页 » 开发者俱乐部 » windows脚本 » 检测网络是否正常
洛洛 - 2007-10-11 10:35:00
刚刚公司给我提出了一个需求,要求用户能方便的检查出网络问题是出现在内网,还是外网,于是我就想了一些写了一个脚本。
使用方法,老规矩保存为vbs文件,双击即可。

三楼,有更新

'***********************************
'* Network Testing for Mcse.org.cn *
'* NAME: QuShengrong *
'* DATE: 2007-10-11 *
'* Mail: [email]lingluo18@gmail.com[/email] *
'* COMMENT: Mcse.org.cn *
'***********************************
Option Explicit
Dim lanString
Dim WlanString
'lan
lanString = "192.168.1.254"
Dim Cmd
Dim fso
Dim cList
Cmd = "%comspec% /c ping "& lanString &" -a -n 1 -w 400 > c:\pinglan.txt"
CreateObject("Wscript.Shell").Run Cmd, 0, True
Set fso = CreateObject("Scripting.FileSystemObject")
Set cList = fso.OpenTextFile ("c:\pinglan.txt")
lanString = cList.ReadAll
WScript.Echo lanString
if instr(lanString,"TTL") > 0 then
'wlan

WlanString = "202.96.209.133"
Cmd = "%comspec% /c ping "& WlanString &" -a -n 1 -w 400 > c:\pingwlan.txt"
CreateObject("Wscript.Shell").Run Cmd, 0, True
Set fso = CreateObject("Scripting.FileSystemObject")
Set cList = fso.OpenTextFile ("c:\pingwlan.txt")
WlanString = cList.ReadAll
WScript.Echo WlanString
cList.close
set cList = nothing
fso.GetFile("c:\pinglan.txt").delete
if instr(WlanString,"TTL") > 0 then
'wlan_successful
WScript.Echo "您的内网、外网访问一切正常"
set cList = nothing
fso.GetFile("c:\pingwlan.txt").delete
else
'wlan_failed
WScript.Echo "对不起,您的外网出现问题,请与信息部联系,并请将c:\pingwlan.txt文件内容告诉系统管理员以便于把帮助您解决问题!"
end if

'lan_failed
else
WScript.Echo "对不器,您的内网出现问题,请与信息部联系,并请将c:\pinglan.txt文件内容告诉系统管理员以便于把帮助您解决问题!"
end if
set fso = nothing


legendchow - 2007-10-12 18:20:00
for /f "tokens=2 delims=:" %a in ('ipconfig ^|findstr "Default Gateway"')do echo %a &&ping %a >nul &&echo ok||echo no

直接在CMD中可以通过.
洛洛 - 2007-10-12 19:41:00
刚刚经过Steven的指点,现在推出更新,如果大家有意见可以和我联系。

'***********************************
'* Network Testing for Mcse.org.cn *
'* NAME: QuShengrong *
'* DATE: 2007-10-12 *
'* Mail: [email]lingluo18@gmail.com[/email] *
'* COMMENT: Mcse.org.cn *
'***********************************
On Error Resume Next
StrComputer = "."
UserName = ""
Password = ""
Dim strComputer
Dim objWMIService
Dim propValue
Dim objItem
Dim SWBemlocator
Dim UserName
Dim Password
Dim colItems
Dim lanString
Dim WlanString
Dim Cmd
Dim fso
Dim cList
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2",UserName,Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration",,48)
For Each objItem in colItems
For each propValue In objItem.DefaultIPGateway
If propValue<>"" Then

'lan

lanString = propValue
Cmd = "%comspec% /c ping "& lanString &" -a -n 1 -w 400 > c:\pinglan.txt"
CreateObject("Wscript.Shell").Run Cmd, 0, True
Set fso = CreateObject("Scripting.FileSystemObject")
Set cList = fso.OpenTextFile ("c:\pinglan.txt")
lanString = cList.ReadAll
WScript.Echo lanString
if instr(lanString,"TTL") > 0 then
'wlan

WlanString = "202.96.209.133"
Cmd = "%comspec% /c ping "& WlanString &" -a -n 1 -w 400 > c:\pingwlan.txt"
CreateObject("Wscript.Shell").Run Cmd, 0, True
Set fso = CreateObject("Scripting.FileSystemObject")
Set cList = fso.OpenTextFile ("c:\pingwlan.txt")
WlanString = cList.ReadAll
WScript.Echo WlanString
cList.close
set cList = nothing
fso.GetFile("c:\pinglan.txt").delete
if instr(WlanString,"TTL") > 0 then
'wlan_successful
WScript.Echo "您的内网、外网访问一切正常"
set cList = nothing
fso.GetFile("c:\pingwlan.txt").delete
else
'wlan_failed
WScript.Echo "对不起,您的外网出现问题,请与信息部联系,并请将c:\pingwlan.txt文件内容告诉系统管理员以便于把帮助您解决问题!"
end if

'lan_failed
else
WScript.Echo "对不器,您的内网出现问题,请与信息部联系,并请将c:\pinglan.txt文件内容告诉系统管理员以便于把帮助您解决问题!"
end If
End If
set fso = nothing

Next
Next


许珈毓 - 2007-10-12 21:42:00
很有使用价值.........学习了..
legendchow - 2007-10-12 22:46:00
洛洛牛人!!!
cxux - 2008-4-11 10:35:00
收下了:default6:
yqcd - 2008-4-11 12:17:00
牛人,收下了.:default5:
reallovelt - 2008-7-16 15:04:00
学习学习
soundice - 2008-7-30 15:44:00
不会,脚本,看不懂。
1
查看完整版本: 检测网络是否正常