Вверх ↑
Этот топик читают: Гость
Ответов: 689
Рейтинг: 20
#1: 2008-09-10 20:14:06 ЛС | профиль | цитата
Добрый вечер коллеги!
Приложением является командная строка. Она уже запускается с определенным параметром (см. код) - к удаленной машине подключаемся через telnet. Нужно после запуска передать другую команду (ping машины из удаленной подсети). Как это сделать корректнее?

Я не запускаю ее в консоли, а именно методом exec, потому что когда это делаю в консоли, то не видны результаты. Можно в принципе и в консоли, и если будут видны результаты то очень хорошо будет... Но они не будут скорее всего видны.

Код:
code_2291.txt

P.S. учить пинговать машины из других подсетей не через телнет - не надо. Но если возникнут желающие: oldtv@hotmail.ru с темой "Пинг машин из других подсетей"
карма: 0

0
файлы: 1code_2291.txt [755B] [381]
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2008-09-11 11:07:18 ЛС | профиль | цитата
oldTV писал(а):
потому что когда это делаю в консоли, то не видны результаты

все результаты прекрасно видно
code_9952.txt
карма: 27
0
файлы: 1code_9952.txt [343B] [279]
Ответов: 689
Рейтинг: 20
#3: 2008-09-11 16:11:54 ЛС | профиль | цитата
Вы меня не поняли, чуток. Мне как раз и нужно открыть командную строку. Общем идеальный алгоритм такой:

    * Проверяем запущен ли сервер telnet удаленной машине. Да - идем дальше, нет - запускаем.
    * Открываем telnet на удаленной машине.
    * Начинаем пинг по определенному адресу, ну скажем, ping 192.168.1.12 -n 20
    * по завершению результатов ping'a закрываем telnet
    * по закрытию telnet - закрываем командную строку.

Когда я ее запускаю в консольном варианте, то я не вижу, запустилась ли она или нет:
Пример:
code_2293.txt
карма: 0

0
файлы: 1code_2293.txt [1011B] [350]
Ответов: 3851
Рейтинг: 159
#4: 2008-09-11 17:58:25 ЛС | профиль | цитата
э, я тут в пингах и телнетах не разобрался, но вот code_9956.txt для тренировки..
------------ Дoбавленo:

вопрос регулярный, схемка небольшая, может в дистриб (после доводки спецами)?..
карма: 0
начавший
0
файлы: 1code_9956.txt [1.1KB] [270]
Ответов: 689
Рейтинг: 20
#5: 2008-09-11 20:05:55 ЛС | профиль | цитата
Андрей., с telnet фишка не прокатывает

[size=-2]------ Добавлено в 20:05
очень странно почему нельзя запустить телнет? Это что какое то приложение специальное?
А в обычную строку - параметр передается. и открывается удаленный хост.

Общем вопрос открыт: как в командную строку передать строку из программы или как заставить выполняться телнет в консоли?

Всем заранее спасибо. Особенно Dilma
карма: 0

0
Ответов: 6
Рейтинг: 0
#6: 2008-09-24 13:48:40 ЛС | профиль | цитата
Может вот так?
code_10052.txt

Извиняюсь, так только ручками вбивать, а передать команду никак не получается.
карма: 0

0
Ответов: 689
Рейтинг: 20
#7: 2008-10-06 14:43:16 ЛС | профиль | цитата
Dilma, не сможете прокомментировать мою проблему? почему не запускается telnet в консоли WinExec.
Спасибо
карма: 0

0
Ответов: 5446
Рейтинг: 323
#8: 2008-10-06 19:51:38 ЛС | профиль | цитата
oldTV, есть подозрение, что telnet использует расширенные набор операций с консолью - не построчный ввод/вывод, а плюс цвет и плюс возможность вывода в произвольной позиции. Поэтому-то они не будет работать с WinExec (doConsoleExec)
карма: 1

0
Ответов: 689
Рейтинг: 20
#9: 2008-10-08 21:39:38 ЛС | профиль | цитата
iarspider, прескорбно, очень прескорбно... просто telnet это как раз то приложение, которое очень нужно облагородить в оболочку и избавить пользователя от его сложности. С построчным выводом соглашусь, а цвета там и в помине нет... И не было. И думаю никогда не будет...
карма: 0

0
Ответов: 5446
Рейтинг: 323
#10: 2008-10-08 22:01:14 ЛС | профиль | цитата
oldTV, а что за страсти такие, что нужно облагораживать telnet?
карма: 1

0
Ответов: 689
Рейтинг: 20
#11: 2008-10-09 14:03:41 ЛС | профиль | цитата
iarspider, скажем так: есть некий компьютер-шлюз, который подсоединен к двум подсетям разными сетевыми интерфейсами. 1-м к общей сети (к примеру 10.10.х.х с адресом 10.10.12.45), 2-м к некой уникальной сети (192.168.45.х с адресом 192.168.45.1). Во второй , уникальной сети, есть оборудование которое необходимо проверять, скажем так. И в качестве проверки служит обычный ping.
Как это делается администратором:

  • администратор запускаем командную строку и соединяется с сервером через telnet, например вот так telnet myserver
  • далее администратор начинает пинг адреса оборудования находящегося в подсети, например ping 192.168.45.20 -t
Что плохо: администратор не находится на работе постоянно, да и хочет автоматизировать процесс.
Если его нет, это могла бы выполнить написанная на hiasm программа, но она, увы и наверное ах, не может передать в консоль строку. Если бы могла, то администратор бы написал программу, получил с базы данных список ip адресов, по очереди их пинганул и получил результат. Теперь надо объяснять человеку что есть такая программа как telnet и вот надо ей воспользоваться, объяснять что такое пинг, давать сложное объяснение что наличие пинга и есть признак работоспособности оборудования и пр. и тд.

Общем нехрен писать консольные программы с переводом строк и цветом... Ибо зло это.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#12: 2008-10-09 17:04:09 ЛС | профиль | цитата
oldTV, у telnet есть свой вполне определенный протокол, под который и нужно писать оболочку. Использоватьже для этого уже готовый клиент и пытаться лепить поверх него свой GUI интерфейс... это называется решить задачу через, прошу прощения, ж..пу. Не делает так никто.
карма: 27
0
Ответов: 689
Рейтинг: 20
#13: 2008-10-09 17:53:23 ЛС | профиль | цитата
Dilma, зачем же так грубо. Вы не понимаете задачу и что-то говорите мне про некорректность. Никто не говорит писать оболочку под telnet. Есть задача: передать в telnet строку ping mystation -t, получить результат и выдать его в виде: компьютер включен!. Telnet есть на любой машине - значит и программа будет там работать. А про оболочку никто не говорил. Просто смешно как сейчас Вы передернули. Был разговор про то, что пользователю нет необходимости знать про пинги, телнеты и подсети и прочую хрень, ему нужен результат: машина в подвале работает или не работает. Все...

А если назвали весь процесс: Вы делаете через ж.у - критикуя предлагай - предложите способ сделать это в hiasm...
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2008-10-09 18:46:21 ЛС | профиль | цитата
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
0
Главный модератор
Ответов: 2999
Рейтинг: 396
#15: 2008-10-09 19:03:05 ЛС | профиль | цитата
Вот VBJScript, при помощи которого можно пинговать компьютеры:

карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1ping.rar [3KB] [285]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)