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-адреса.
Заранее спасибо
 

Screjet

Новичок
Знакомый сисадмин по крону проверяет узлы, качество связи с ними.
Алгоритм такой: высылаем на каждый узел N запросов и получаем с каждого узла M ответов. Соотв. M/N == 0 узел недоступен.
 

BI aka Veron

Guest
По крону?
Плиз, объясни убогому - что енто за зверь :)

-~{}~ 20.12.05 13:52:

Кроме того тут есть пересечение с проблемой №2. Как я уже писал, ping возвращает 0 в двух случаях, укладывающихся в результат - ПРИШЕЛ ОТВЕТ. А мне важно, пришел ответ с пингуемого хоста или от шлюза... Таким образом, получив M=N ответов, мы не будем уверены, что узел доступен. Так я думаю, но могу ошибаться.
 

Screjet

Новичок
BI aka Veron
Определись, что проверяем: статический список IP или список хостов. Если хосты, то проверяй предварительно ответы от ДНС сервера.
 

BI aka Veron

Guest
Список статических адресов. То есть список может меняться естественно (удобно его считывать из текстовухи). ДНС не будет использоваться, так как сетка технологическая, все удобства по минимуму.
 

BI aka Veron

Guest
а сам-то пробовал?
Она хоть существует?
Я искал, но везде только описание параметров и ключей.
Даже в Win2K Resource Kit ниче не написано...
 

Screjet

Новичок
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.
 

BI aka Veron

Guest
Откуда взял такую информацию (интересно просто :) )
Благодарю. То есть случай (2) можно расценивать как существование адреса, но его недоступность для пингующего?
 

Screjet

Новичок
BI aka Veron
Для fbsd 5.4 это верное утверждение.
Для других ОСей нужно смотреть
 

BI aka Veron

Guest
Я подозреваю, что это POSIX-стандарт. Следовательно, он должен быть одинаков для всех... Будем смотреть...
СПАСИБО.
 
Сверху