PDA

Показать полную графическую версию : [решено] Проверка наличия соединения с интернетом (*.vbs)


BadAngel
15-03-2009, 14:12
Уважаемые знатоки!! Помогите!!!
Мне необходима написать такой скрипт который проверяет наличия соединения с интернетом и в случае true записывает текущий ip в текстовой файл (желательно с временем выполнения этой операции) а в случае false меняет ip на другой определений и тоже проверяет наличия соединения. И так к тому времени пака не будет использован тот ip который даст выход в интернет.

amel27
15-03-2009, 16:26
пака не будет использован тот ip который даст выход в интернет »дык какой IP менять по ходу проверки?.. ДНС, удаленного хоста (для пинга) или локального хоста?

BadAngel
15-03-2009, 18:08
IP локалной сети. И чтоб этот IP бил из моего массива.

amel27
15-03-2009, 18:18
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?

foxbat
16-03-2009, 09:45
Может способом возможности открытия некого сайта или посредством 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

amel27
16-03-2009, 11:17
Может способом возможности открытия некого сайта или посредством 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
Большое спасибо. Проблема решена.

Sos
18-04-2011, 12:06
Помогите как сделать скрипт на WSH чтобы Ip в онлайн режиме пинговался, т.е все время, а то я дуб дубом в этих скриптах




© OSzone.net 2001-2012