|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.01.2007, 17:59 | #1 |
Новичок
Джуниор
Регистрация: 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. Причем, необходимо извлечь именно последнюю цифру, а не перенаправить вывод команды в какую то переменную(т.е. целой строки). Затем присвоить эту цифру в переменную для дальнейших операций над ней. |
27.01.2007, 22:14 | #2 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
А в чем трабл? Задача даже здесь разжевана до нельзя...Если по этому тексту ожидается готовая программа, то место темы в разделе "Работа для программиста".
Познавая других, мы познаем себя.
С'est la vie... |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Консольное приложение с командами | Noor | Общие вопросы Delphi | 4 | 24.04.2008 21:54 |