Показать полную графическую версию : [решено] Проверка наличия соединения с интернетом (*.vbs)
BadAngel
15-03-2009, 14:12
Уважаемые знатоки!! Помогите!!!
Мне необходима написать такой скрипт который проверяет наличия соединения с интернетом и в случае true записывает текущий ip в текстовой файл (желательно с временем выполнения этой операции) а в случае false меняет ip на другой определений и тоже проверяет наличия соединения. И так к тому времени пака не будет использован тот ip который даст выход в интернет.
пака не будет использован тот ip который даст выход в интернет »дык какой IP менять по ходу проверки?.. ДНС, удаленного хоста (для пинга) или локального хоста?
BadAngel
15-03-2009, 18:08
IP локалной сети. И чтоб этот IP бил из моего массива.
IP локалной сети »
в смысле не только IP хоста, но и маску подсети?.. но ведь тогда и шлюз придется менять... какая размерность массива?
BadAngel
15-03-2009, 18:23
Я вот нашел скрипт который делает то что мне надо
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array("192.168.1.141")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.1.100")
strGatewayMetric = Array(1)
For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
If errEnable = 0 Then
WScript.Echo "The IP address has been changed."
Else
WScript.Echo "The IP address could not be changed."
End If
Next
Толька как сделать так чтоб он ещо и проверял наличия соединения с интернетом после изменения и в противном случее менял “192.168.1.141” на “192.168.1.142” и снова начинался сначала
BadAngel
15-03-2009, 19:05
Или подскажите хотя б как через *.vbs проверить есть ли доступ в интернет. Может способом возможности открытия некого сайта или посредством ping?
Может способом возможности открытия некого сайта или посредством ping? »
set WshShell = CreateObject("WScript.Shell")
'Запускаем ping и ожидаем завершения его работы
Return = WshShell.Run("ping www.ru ", 0, true)
If Return=0 then
WScript.Echo "инет есть"
Else WScript.Echo "инета нет"
End If
Может способом возможности открытия некого сайта или посредством ping? »еще вариант через WMI:
iPing = Ping("www.google.com")
If iPing=0 Then
WScript.Echo "Интернет есть"
Else
WScript.Echo "Интернета НЕТ, код ошибки: "& iPing
End If
Function Ping (strTarget)
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colPings = objWMIService.ExecQuery ("Select * From Win32_PingStatus where Address = '" & strTarget & "'")
For Each objPing in colPings
Ping = objPing.StatusCode
Next
End Function
З.Ы. В корпоративных сетях этот метод почему-то работает не всегда, через PING.EXE надежней
BadAngel
17-03-2009, 12:55
Большое спасибо. Проблема решена.
Помогите как сделать скрипт на WSH чтобы Ip в онлайн режиме пинговался, т.е все время, а то я дуб дубом в этих скриптах
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.