Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Проверка наличия соединения с интернетом (*.vbs) (http://forum.oszone.net/showthread.php?t=134813)

BadAngel 15-03-2009 14:12 1064462

Проверка наличия соединения с интернетом (*.vbs)
 
Уважаемые знатоки!! Помогите!!!
Мне необходима написать такой скрипт который проверяет наличия соединения с интернетом и в случае true записывает текущий ip в текстовой файл (желательно с временем выполнения этой операции) а в случае false меняет ip на другой определений и тоже проверяет наличия соединения. И так к тому времени пака не будет использован тот ip который даст выход в интернет.

amel27 15-03-2009 16:26 1064562

Цитата:

Цитата BadAngel
пака не будет использован тот ip который даст выход в интернет »

дык какой IP менять по ходу проверки?.. ДНС, удаленного хоста (для пинга) или локального хоста?

BadAngel 15-03-2009 18:08 1064661

IP локалной сети. И чтоб этот IP бил из моего массива.

amel27 15-03-2009 18:18 1064669

Цитата:

Цитата BadAngel
IP локалной сети »

в смысле не только IP хоста, но и маску подсети?.. но ведь тогда и шлюз придется менять... какая размерность массива?

BadAngel 15-03-2009 18:23 1064672

Я вот нашел скрипт который делает то что мне надо

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 1064733

Или подскажите хотя б как через *.vbs проверить есть ли доступ в интернет. Может способом возможности открытия некого сайта или посредством ping?

foxbat 16-03-2009 09:45 1065258

Цитата:

Цитата BadAngel
Может способом возможности открытия некого сайта или посредством 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 1065308

Цитата:

Цитата BadAngel
Может способом возможности открытия некого сайта или посредством 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 1066256

Большое спасибо. Проблема решена.

Sos 18-04-2011 12:06 1660836

Помогите как сделать скрипт на WSH чтобы Ip в онлайн режиме пинговался, т.е все время, а то я дуб дубом в этих скриптах


Время: 22:39.

Время: 22:39.
© OSzone.net 2001-