Регистрация Правила Главная форума Поиск |
0
- 04.08.2011 - 10:57
|
Где то так, только штатными средствами виндуза нужные вам команды ищите в rfc 1759 //******************************************* Процедура Сформировать() Протокол = СоздатьОбъект("OlePrn.OleSnmp"); Сообщество = "public"; Попытки = 1; Ожидание = 100; Команда="25.3.2.1.3.1"; ШелСкрипт = СоздатьОбъект("WScript.Shell"); Ремота = СоздатьОбъект("rcbdyctl.setting"); Стр = СтрЗаменить(Ремота.GetIpAddress, ".", "" ""); Адреса = ""; Для Сч = 1 По 3 Цикл Адреса = Адреса + СтрПолучитьСтроку(Стр, Сч) + "."; КонецЦикла; Для Сч = 1 По 255 Цикл Адрес = Адреса + Сч; Если ШелСкрипт.Run("ping -n 1 -w 10 " + Адрес, 0, -1) = 0 Тогда Состояние("Опрос " + Адрес); Попытка Протокол.Open(Адрес, Сообщество, Попытки, Ожидание); Сообщить(Адрес + " -> " + Протокол.Get(Команда)); Протокол.Close(); Исключение КонецПопытки; КонецЕсли; КонецЦикла; КонецПроцедуры | |
1
- 04.08.2011 - 11:15
|
Небрежничаешь? Стр = СтрЗаменить(Ремота.GetIpAddress, ".", "" ""); ?? Адреса = Адреса + СтрПолучитьСтроку(Стр, Сч) + "."; ?? Но спасибо :) | |
2
- 04.08.2011 - 11:49
| та ладно, это же документировано | |
3
- 04.08.2011 - 12:32
|
2-VZ > Хе, забавно... Но способ разделения методом СтрЗаменить(Параметр, ".", "" "") ни разу не использовал... Признаю, вспылил, был неправ. Однако... Точно уверен, что семерошнаяПопытка отловит прерывание по Протокол.Open(Адрес, Сообщество, Попытки, Ожидание)? Может, лучше в Run забить On Error Resume Next (заодно и цикл)? | |
4
- 04.08.2011 - 13:08
| проверено | |
5
- 04.08.2011 - 16:30
|
А нафига ? А драйвера потом как ? | |
6
- 04.08.2011 - 17:20
|
(6) какие такие драйвера ? более информативно (или нужны еще статусы, порты и т.п.) ? - //******************************************* Процедура Сформировать() Протокол = СоздатьОбъект("OlePrn.OleSnmp"); Сообщество = "public"; Попытки = 1; Ожидание = 200; Команды = СоздатьОбъект("СписокЗначений"); Команды.ДобавитьЗначение("25.3.2.1.3.1", "Имя"); Команды.ДобавитьЗначение("43.10.2.1.4.1.1", "Количество"); ШелСкрипт = СоздатьОбъект("WScript.Shell"); Ремота = СоздатьОбъект("rcbdyctl.setting"); Адреса = СтрЗаменить(Ремота.GetIpAddress, ";", "" ""); Для х = 1 По СтрКоличествоСтрок(Адреса) Цикл Стр = СтрЗаменить(СтрПолучитьСтроку(Адреса, х), ".", "" ""); Сеть = ""; Для Сч = 1 По 3 Цикл Сеть = Сеть + СтрПолучитьСтроку(Стр, Сч) + "."; КонецЦикла; Для Сч = 1 По 254 Цикл Адрес = Сеть + Сч; Состояние("Пинг: " + Адрес); Если (ШелСкрипт.Run("ping -n 1 -w 10 " + Адрес, 0, -1) = 0) и (СтрПолучитьСтроку(Адреса, х) <> Адрес) Тогда Состояние("Опрос: " + Адрес); Попытка Протокол.Open(Адрес, Сообщество, Попытки, Ожидание); Стр = "Адрес: " + Адрес + "; "; Для к = 1 По Команды.РазмерСписка() Цикл Имя = ""; Команда = Команды.ПолучитьЗначение(к, Имя); Стр = Стр + Имя + ": " + Протокол.Get(Команда) + "; "; КонецЦикла; Сообщить(Стр); Протокол.Close(); Исключение Ошибка = ОписаниеОшибки(); Если Найти(Ошибка, "Unknown Error") = 0 Тогда Сообщить("Адрес: " + Адрес + " на SNMP овечает, но " + Сред(Ошибка, Найти(Ошибка, ":") + 1), "!!!"); КонецЕсли; КонецПопытки; КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры | |
7
- 04.08.2011 - 22:40
|
спасибо... скоро пора выпускать "библию" типа "Так говорил smaharbA" | |
| Интернет-форум Краснодарского края и Краснодара |