![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Всем привет!
Имеется программа для формирования команд для телнет. Сейчас она работает так: выбираешь сервер телнет, вводишь данные, программа формирует команды типа: telnet server login pass comand comand comand comand ... , все это копируется и вставляется в командную строку и все там выполняется. Хотелось бы сделать чтобы он все это выполнял также в командной строке но отображал в мемо. Так как начинающий програмер, смотрел примеры по работе с командной строкой, но так ничего и не понял или даже еще больше запутался. Смотрел в сторону idTelnet и Winexec. Но пока не осилил. И еще одна просьба, если можно не только пример программы но и объяснения к скрипту. хотелось бы понять для дальнейшей работы с программой. Заранее благодарен! |
#2
|
||||
|
||||
![]() Если я правильно понял, то есть некий эмулятор телнета который генерит сей скрипт. Вы затем засовываете это в реальный телнет?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() Не совсем. На данный момент просто команды выводятся в мемо. Я их копирую и вставляю в cmd.exe ну и там все это выполняется(простейши копи-паст). Ну т.е. это просто облегчает тем что не надо команды вспоминать и вводить. А хочется еще доработать программу и сделать чтобы она сама подключалась по телнету и вводила команды по заранее заданным данным.
|
#4
|
||||
|
||||
![]() есть готовое решение:
Цитата:
Пишу программы за еду. __________________ |
#5
|
|||
|
|||
![]() Подскажите, как можно этим воспользоваться? Я видимо чего-то не понимаю.
|
#6
|
|||
|
|||
![]() Люди может хотя бы подскажите как открыть цмд.ехе (хотя знаю как его открыть из программы) и вставить туда все команды которые он формирует?
|
#7
|
|||
|
|||
![]() Люди не сочтите за наглость, но могли бы помочь с другой программой для бэкапов настроек целогоо списка оборудования. Как я вижу данную прогу:
на форме только мемо и procedure TForm1.FormCreate(Sender: TObject); begin //idtelnet1.Terminal:='VT100'; host:='huawei-941'; ip:='100.244.003.002'; cmd:='q' + #13 + 'en' + #13 + 'backup configuration ftp 10.244.57.205 ' + host + '-' + datetimetostr(date); IdTelnet1.Host:=ip; IdTelnet1.Connect; snd('rroot'); snd('rootpass'); snd(cmd); snd('y'); snd(logout); end; Но вот ньюанс, не знаю как реализовать чтобы он выполнил эту команду на целом списке оборудовании и выдерживал паузу после команды snd(cmd). Я тут подумал нельзя ли сделать процедуру внутри процедуры, т.е. одна будет перечислять ип адреса оборудования, а вторая, в которой будет первая процедура, будет уже выполнять вышеуказанную процедуру. Ну или как то так чот я уже сам запутался))). |
#8
|
|||
|
|||
![]() Кстати, почему то когда отправляет рута съедает первую букву поэтому сделал два раза р (rroot)
|
#9
|
||||
|
||||
![]() ЙОООЛКИ... Форум нуджается в теге "spoiler", такие портянки эпичные напостили.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#10
|
|||
|
|||
![]() гуру подскажите что я делаю не так?
вот так на данный момент выглядит прога для бекапов: Код:
procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet; const Buffer: String); const CR=#13; LF=#10; var Start, Stop: integer; begin memo1.Lines.Add(''); start:=1; stop:=Pos(CR, Buffer); if stop = 0 then stop:=length(buffer)+1; while start<=length(buffer) do begin memo1.Lines.Strings[memo1.Lines.Count - 1]:= memo1.Lines.Strings[memo1.Lines.count - 1] + copy(buffer, start, stop - start); if buffer[stop] = CR then begin memo1.Lines.Add(''); end; start:=stop+1; if start > length(buffer) then break; if buffer[start] = LF then start:=start+1; stop:=start; while (buffer[stop] <> CR) and (stop <=length(buffer)) do stop:=stop+1; end; end; procedure TForm1.snd(ds: string); begin for i:=1 to length(ds) do idtelnet1.SendCh(ds[i]); idtelnet1.SendCh(#13); end; procedure TForm1.tlnt(ipadr: string; hostname: string); begin usr:='rroot'; pass:='rootpass'; lgt:='logout'; cmd:='enable' + #13 + 'backup configuration ftp 10.244.7.205 ' + hostname + '-' + datetimetostr(date); IdTelnet1.Host:=ipadr; IdTelnet1.Connect; snd(usr); snd(pass); snd('q'); snd(cmd); snd('y'); // Sleep(60000); snd(lgt); end; procedure TForm1.FormCreate(Sender: TObject); begin for i:=1 to 2 do begin if i=1 then tlnt('10.24.5.14', 'huawei-1'); if i=2 then tlnt('10.24.5.178', 'huawei-2'); end; end; end. Подключается через раз, если подключается то не отправляет usr и pass. Если делать на одной железке то через раз проходит если проходит через раз отправляет usr и pass. Так вот не понятно в чем проблема. Очень надо. |
#11
|
|||
|
|||
![]() люди ну хоть что то подскажите!!! уже пробывал в трай, финалли засунуть все равно прога намертво виснет. подключается но не отправляет команды.
|