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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Редирект адреса по доступности? (http://forum.oszone.net/showthread.php?t=251568)

AlexPebody 16-01-2013 11:49 2067920

Редирект адреса по доступности?
 
Всем приветы! Народ я совсем недавно пишу на vbs прям простенькие скрипты, нужна ваша помощь!

Нужно сделать ярлык на vbs скрипт, который будет делать редирект с одного сайта на другой при недоступности одного из них, а точнее:

Запускаем срипт, открывается сайт, к примеру yandex.ru (нужно будет по IP), если не открываается скажем за 5 секунд, то открыть ngs.ru (опять же по IP).

Народ подскажите плз, очень нужен такой скрипт, т.к. в нативе только vb в винде, а я могу только на php написать такое. Буду ОЧЕНЬ благодарен!

Прошу за вопрос не пинать! Заранее спасибо.

Iska 16-01-2013 14:29 2068074

Что в Вашем понимании значит «открывается сайт»?

AlexPebody 16-01-2013 16:49 2068186

Цитата:

Цитата Iska
Что в Вашем понимании значит «открывается сайт»? »

Зажал Enter на script.vbs открылся сайт yandex.ru, если yandex.ru не был доступен и не смог открыться, то открылся ngs.ru. Вот такое понимание. )

Iska 16-01-2013 23:55 2068499

Цитата:

Цитата Iska
Что в Вашем понимании значит «открывается сайт»? »

Цитата:

Цитата AlexPebody
Зажал Enter на script.vbs открылся сайт yandex.ru, … Вот такое понимание. ) »

Потрясающе.
Кырт - это кырт, потому что он кырт.
Цитата:

Когда-то ослепленная блеском кыртовых волокон, она спросила у своей няньки:

- Почему он блестит, няня?
- Потому, что это Кырт, Миаканс.
- Почему другие вещи не блестят так, няня?
- Другие - это не Кырт, Миаканс.

Вот и все. Двухтомная монография на эту тему была написана только три года назад. Она внимательно прочла ее. Все сводилось к нянькиному объяснению. Кырт - это кырт, потому что он кырт.


Посредством Wbem класса Win32_PingStatus опрашиваете хост «yandex.ru». При его доступности вызываете URL этого хоста посредством метода «.Run()» объекта «WScript.Shell». При недоступности — то же самое для другого сайта.

AlexPebody 17-01-2013 05:25 2068579

Спасибо. Это уже кое что, но не могли бы вы черкнуть скрипт хотябы пример? Я совсем немного знаю по VBS поэтому к сожалению пока не очень понимаю как сделать скрипт, а конкретных примеров нет в сети, вчера целый день рыл, в основе вылетает по php и apache команды, что я уже сделал... Но нужен скрипт в локали! ОЧЕНЬ!

AlexPebody 17-01-2013 05:45 2068580

Есть вот такой скрипт пинга хоста и вывода лога:

Код:

dim fso, soWshShell : set soWshShell = CreateObject("WScript.Shell")

Set fso = CreateObject("Scripting.FileSystemObject")
Const ForAppending = 8
Set tf = fso.OpenTextFile("logping.txt", ForAppending, True)
conCheckInterval = 60000 'интервал опроса в мс
WScript.Quit Main()
function WriteLog()

strMachines ="192.168.0.1;192.168.0.2"
aMachines = split(strMachines, ";")

For Each machine in aMachines
    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
        ExecQuery("select * from Win32_PingStatus where address = '"_
            & machine & "'")
    For Each objStatus in objPing

        If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then

tf.WriteLine(FormatDateTime(Date(), vbShortDate) & "|" & FormatDateTime(Time(), vbLongTime) & "|" & machine & "|" &"Cвязь с сервером  прервана.")

Его я так понимаю можно применить, но как... ппц опять же не соображу т.к. если и пишу то на php а там все другие обороты и синтаксис.

Прошу помощи...???

AlexPebody 17-01-2013 06:19 2068584

ФУХ...................... Ыыы, все сам разрыл!

Код:

Option Explicit
Dim objSWbemServicesEx, collSWbemObjectSet, objSWbemObjectEx, strAddress
strAddress = "192.168.0.1"
Set objSWbemServicesEx = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set collSWbemObjectSet = objSWbemServicesEx.ExecQuery("SELECT * FROM Win32_PingStatus WHERE Address = '" & strAddress & "'")
For Each objSWbemObjectEx In collSWbemObjectSet
If IsNull(objSWbemObjectEx.StatusCode) Or objSWbemObjectEx.StatusCode <> 0 Then
WScript.CreateObject("Wscript.Shell").Run "http://yandex.ru/", 1, vbTrue
Else
WScript.CreateObject("Wscript.Shell").Run "http://ngs.ru/", 1, vbTrue
End If
Next
Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
WScript.Quit 0



Время: 05:23.

Время: 05:23.
© OSzone.net 2001-