Добрый вечер коллеги!
Приложением является командная строка. Она уже запускается с определенным параметром (см. код) - к удаленной машине подключаемся через telnet. Нужно после запуска передать другую команду (ping машины из удаленной подсети). Как это сделать корректнее?
Я не запускаю ее в консоли, а именно методом exec, потому что когда это делаю в консоли, то не видны результаты. Можно в принципе и в консоли, и если будут видны результаты то очень хорошо будет... Но они не будут скорее всего видны.
Код:
code_2291.txt
P.S. учить пинговать машины из других подсетей не через телнет - не надо. Но если возникнут желающие: oldtv@hotmail.ru с темой "Пинг машин из других подсетей"
Этот топик читают: Гость
Ответов: 689
Рейтинг: 20
|
|||
карма: 0 |
| ||
файлы: 1 | code_2291.txt [755B] [381] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
oldTV писал(а): потому что когда это делаю в консоли, то не видны результатывсе результаты прекрасно видно code_9952.txt |
|||
карма: 27 |
| ||
файлы: 1 | code_9952.txt [343B] [279] |
Ответов: 689
Рейтинг: 20
|
|||
Вы меня не поняли, чуток. Мне как раз и нужно открыть командную строку. Общем идеальный алгоритм такой:
* Проверяем запущен ли сервер telnet удаленной машине. Да - идем дальше, нет - запускаем. * Открываем telnet на удаленной машине. * Начинаем пинг по определенному адресу, ну скажем, ping 192.168.1.12 -n 20 * по завершению результатов ping'a закрываем telnet * по закрытию telnet - закрываем командную строку. Когда я ее запускаю в консольном варианте, то я не вижу, запустилась ли она или нет: Пример: code_2293.txt |
|||
карма: 0 |
| ||
файлы: 1 | code_2293.txt [1011B] [350] |
Ответов: 3851
Рейтинг: 159
|
|||
э, я тут в пингах и телнетах не разобрался, но вот code_9956.txt для тренировки..
------------ Дoбавленo: вопрос регулярный, схемка небольшая, может в дистриб (после доводки спецами)?.. |
|||
карма: 0 |
| ||
файлы: 1 | code_9956.txt [1.1KB] [270] |
Ответов: 689
Рейтинг: 20
|
|||
Андрей., с telnet фишка не прокатывает
[size=-2]------ Добавлено в 20:05 очень странно почему нельзя запустить телнет? Это что какое то приложение специальное? А в обычную строку - параметр передается. и открывается удаленный хост. Общем вопрос открыт: как в командную строку передать строку из программы или как заставить выполняться телнет в консоли? Всем заранее спасибо. Особенно Dilma |
|||
карма: 0 |
|
Ответов: 6
Рейтинг: 0
|
|||
Может вот так?
code_10052.txt Извиняюсь, так только ручками вбивать, а передать команду никак не получается. |
|||
карма: 0 |
|
Ответов: 689
Рейтинг: 20
|
|||
Dilma, не сможете прокомментировать мою проблему? почему не запускается telnet в консоли WinExec.
Спасибо |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
oldTV, есть подозрение, что telnet использует расширенные набор операций с консолью - не построчный ввод/вывод, а плюс цвет и плюс возможность вывода в произвольной позиции. Поэтому-то они не будет работать с WinExec (doConsoleExec)
|
|||
карма: 1 |
|
Ответов: 689
Рейтинг: 20
|
|||
iarspider, прескорбно, очень прескорбно... просто telnet это как раз то приложение, которое очень нужно облагородить в оболочку и избавить пользователя от его сложности. С построчным выводом соглашусь, а цвета там и в помине нет... И не было. И думаю никогда не будет...
|
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
oldTV, а что за страсти такие, что нужно облагораживать telnet?
|
|||
карма: 1 |
|
Ответов: 689
Рейтинг: 20
|
|||
iarspider, скажем так: есть некий компьютер-шлюз, который подсоединен к двум подсетям разными сетевыми интерфейсами. 1-м к общей сети (к примеру 10.10.х.х с адресом 10.10.12.45), 2-м к некой уникальной сети (192.168.45.х с адресом 192.168.45.1). Во второй , уникальной сети, есть оборудование которое необходимо проверять, скажем так. И в качестве проверки служит обычный ping.
Как это делается администратором:
Если его нет, это могла бы выполнить написанная на hiasm программа, но она, увы и наверное ах, не может передать в консоль строку. Если бы могла, то администратор бы написал программу, получил с базы данных список ip адресов, по очереди их пинганул и получил результат. Теперь надо объяснять человеку что есть такая программа как telnet и вот надо ей воспользоваться, объяснять что такое пинг, давать сложное объяснение что наличие пинга и есть признак работоспособности оборудования и пр. и тд. Общем нехрен писать консольные программы с переводом строк и цветом... Ибо зло это. |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
oldTV, у telnet есть свой вполне определенный протокол, под который и нужно писать оболочку. Использоватьже для этого уже готовый клиент и пытаться лепить поверх него свой GUI интерфейс... это называется решить задачу через, прошу прощения, ж..пу. Не делает так никто.
|
|||
карма: 27 |
|
Ответов: 689
Рейтинг: 20
|
|||
Dilma, зачем же так грубо. Вы не понимаете задачу и что-то говорите мне про некорректность. Никто не говорит писать оболочку под telnet. Есть задача: передать в telnet строку ping mystation -t, получить результат и выдать его в виде: компьютер включен!. Telnet есть на любой машине - значит и программа будет там работать. А про оболочку никто не говорил. Просто смешно как сейчас Вы передернули. Был разговор про то, что пользователю нет необходимости знать про пинги, телнеты и подсети и прочую хрень, ему нужен результат: машина в подвале работает или не работает. Все...
А если назвали весь процесс: Вы делаете через ж.у - критикуя предлагай - предложите способ сделать это в hiasm... |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
oldTV, не стоит принимать все на свой личный счет - программистами становятся не сразу и не абы как. Если решение сделано через указанное место, то оно именно через него и сделано вне зависимости от того, для каких целей его используют в дальнейшем. Тут не обижаться надо(можно подумать, что я сам никогда так задачи не решал...), а искать пути приемлемых решений.
oldTV писал(а): А если назвали весь процесс: Вы делаете через ж.у - критикуя предлагайа это для кого написано? Dilma писал(а): у telnet есть свой вполне определенный протокол, под который и нужно писать оболочку.описание протокола http://www.opennet.ru/docs/RUS/linux_base/node372.html упрощенный пример на Delphi через компоненты TCP http://itby.ru/content/view/2538/40/ (переносится на hiasm почти 1 к 1) ya.ru еще никто не отменял к счастью... oldTV писал(а): Просто смешно как сейчас Вы передернули.впрочем если поиск нормального решения поставленной задачи кажется смешным, то тему можно закрыть - мы-то от этого ничего не теряем ------------ Дoбавленo: у решения сделанного не через ж кроме всего прочего есть шансы на включение в дистрибутив |
|||
карма: 27 |
|
Главный модератор
Ответов: 2999
Рейтинг: 396
|
|||
Вот VBJScript, при помощи которого можно пинговать компьютеры:
|
|||
карма: 6 |
| ||
файлы: 1 | ping.rar [3KB] [285] |