Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2007, 17:59   #1
3apadlo
Новичок
Джуниор
 
Регистрация: 19.01.2007
Сообщений: 1
По умолчанию Работа с DOS командами.

Собственно задача:
Определение наличия связи между двумя хостами при помощи интегрированного инструментария MS-DOS, анализ log-файла результатов отправки пакетов на удаленный адрес, определение последовательности действий(условие) на основе анализа log-файла(т.е. есть соединение/нет соединения). Предпологается, что процедуру отправки пакетов будет выполнять исполняемый пакетный bat-файл при помощи инструмента "ping" с параметрами -n 4, что означает отправку 4 ICMP-запросов и запись результатов(т.е. ответов) программы в файл, например - ping xxx.xxx.xxx.xxx -n 4 >> xxx.log(команда из пакетного файла). Содержание log-файла после выполнения данной команды будет примерно следующим:

Обмен пакетами с xxx.xxx.xxx.xxx по 32 байт:
Ответ от xxx.xxx.xxx.xxx: число байт=32 время<10мс TTL=128
Ответ от xxx.xxx.xxx.xxx: число байт=32 время<10мс TTL=128
Ответ от xxx.xxx.xxx.xxx: число байт=32 время<10мс TTL=128
Ответ от xxx.xxx.xxx.xxx: число байт=32 время<10мс TTL=128

Статистика Ping для xxx.xxx.xxx.xxx:
Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),
Приблизительное время передачи и приема:
наименьшее = 0мс, наибольшее = 0мс, среднее = 0мс

Далее следует команда DOS - find с параметрами /C "xxx.xxx.xxx.xxx" xxx.log >> xxx.log. Что в свою очередь добавляет в конец log-файла строку ---------- XXX.LOG: 6
Т.к. пакетов на адрес xxx.xxx.xxx.xxx было послано 4 + 1 строка "информационная"+ 8 строка "статистика", где в содержании этих строк присутствует xxx.xxx.xxx.xxx получаем 6(max) совпадений, либо при отсутствии связи получаем 2(min) совпадения, либо при утере n кол-ва пакетов получим цифру(y) y=max-n соответственно. Другими словами последняя цифра в последней строке log-файла всегда будет однозначно свидетельствовать о том, есть ли соединение(6,5,4,3) или его нет(2) вообще.
Следующий этап. Необходимо из данного log-файла извлечь последнюю цифру записанную командой find. Причем, необходимо извлечь именно последнюю цифру, а не перенаправить вывод команды в какую то переменную(т.е. целой строки). Затем присвоить эту цифру в переменную для дальнейших операций над ней.
3apadlo вне форума Ответить с цитированием
Старый 27.01.2007, 22:14   #2
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

А в чем трабл? Задача даже здесь разжевана до нельзя...Если по этому тексту ожидается готовая программа, то место темы в разделе "Работа для программиста".
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консольное приложение с командами Noor Общие вопросы Delphi 4 24.04.2008 21:54