ping для сетки

  • Автор темы Автор темы BI aka Veron
  • Дата начала Дата начала

BI aka Veron

Guest
ping для сетки

Всем привет!
Возник вопрос - необходимо циклически проверять доступность сетевых устройств по некоторому перечню статических IP-адресов. Задача вроде как не нова, но есть проблемы:
1) Помимо рабочих машин (под ОСями Windows и QNX4) надо проверять и сетевое оборудование (маршрутизаторы Cisco, dsl-модемы Zelax и Nport-ы Moxa). Таким образом, использование сокетов отпадает - нет единого для них все порта (telnet подходит для оборудования, но не для рабочих тачек). Следовательно, надо проверять на сетевом уровне (как утилита ping)
2) Во всех примерах использования пингования я видел примерно одну и ту же конструкцию - system("ping $somehost"). К сожалению, функция не возвращает удобоваримого признака доступности сети - я получал result 0 и 1, причем 1 соотвествтовал недоступности сетевого адреса, а 0 - либо доступен, либо заблокирован маршрутизатором (возможно, есть другие коды возврата или дополнительные условия формирования - просто не нашел их).

Есть ли способ выполнить данную задачу? Повторюсь, главная цель - проверить ДОСТУПНОСТЬ IP-адреса.
Заранее спасибо
 
Знакомый сисадмин по крону проверяет узлы, качество связи с ними.
Алгоритм такой: высылаем на каждый узел N запросов и получаем с каждого узла M ответов. Соотв. M/N == 0 узел недоступен.
 
По крону?
Плиз, объясни убогому - что енто за зверь :)

-~{}~ 20.12.05 13:52:

Кроме того тут есть пересечение с проблемой №2. Как я уже писал, ping возвращает 0 в двух случаях, укладывающихся в результат - ПРИШЕЛ ОТВЕТ. А мне важно, пришел ответ с пингуемого хоста или от шлюза... Таким образом, получив M=N ответов, мы не будем уверены, что узел доступен. Так я думаю, но могу ошибаться.
 
BI aka Veron
Определись, что проверяем: статический список IP или список хостов. Если хосты, то проверяй предварительно ответы от ДНС сервера.
 
Список статических адресов. То есть список может меняться естественно (удобно его считывать из текстовухи). ДНС не будет использоваться, так как сетка технологическая, все удобства по минимуму.
 
а сам-то пробовал?
Она хоть существует?
Я искал, но везде только описание параметров и ключей.
Даже в Win2K Resource Kit ниче не написано...
 
fbsd 5.4 ping(1)
RETURN VALUES
Код:
The ping utility returns an exit status of zero if at least one response
was heard from the specified host; a status of two if the transmission  
was successful but no responses were received; or another value (from   
<sysexits.h>) if an error occurred.
 
Откуда взял такую информацию (интересно просто :) )
Благодарю. То есть случай (2) можно расценивать как существование адреса, но его недоступность для пингующего?
 
BI aka Veron
Для fbsd 5.4 это верное утверждение.
Для других ОСей нужно смотреть
 
Я подозреваю, что это POSIX-стандарт. Следовательно, он должен быть одинаков для всех... Будем смотреть...
СПАСИБО.
 
Сверху