AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi co work: batch & delphi?
Thema durchsuchen
Ansicht
Themen-Optionen

co work: batch & delphi?

Ein Thema von merissa · begonnen am 19. Apr 2003 · letzter Beitrag vom 4. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
merissa

Registriert seit: 19. Apr 2003
4 Beiträge
 
Delphi 7 Enterprise
 
#1

co work: batch & delphi?

  Alt 19. Apr 2003, 02:55
hi @ delphi-community

schreibe momentan ein kleins programm, das eine verschlüsselte connection zu einem beliebigen service (bsp. netBIOS, pop3, vnc etc.) tunnelt. leider muss ich in der windows-version auf die batch-programmierung zurückgreifen (unix/linux version komplett in perl geschrieben).

folgendes problem stellt sich:
der kern bildet einen opensrc ssh-client für windows, der shellbasierend ist.

a) der endusr muss passwort seperat übermitteln, daher: passwort
kann nich zusammen mit loginname im mainprogramm (GUI-basierend) angegeben werden, sondern muss nach aufruf des ssh-clients seperat angegeben werden. das ist unschön.

b) batchfile muss sichtbar in der cmd.exe ablaufen, und kann nicht als hintergrundprozess laufen (da passwort abgefragt wird). das ist auch nicht gerade elgant.

meine frage nun
hat jemand einen guten tip, wie ich über delphi die standarteingabe auf das batchfile umeleiten kann. quasi eine variable (die das pwd enthält) an den ssh-client übergeben?
und sollte dies funktionieren... wie kann das batchfile im hintergrund (für den user nicht sichtbar) laufen lasse?

besten dank für eure aufgewendete zeit / eure bemühungen
merissa / merissa@uncompiled.com
  Mit Zitat antworten Zitat
BungeeBug

Registriert seit: 19. Dez 2002
Ort: zuhause?!
227 Beiträge
 
Delphi 6 Personal
 
#2
  Alt 19. Apr 2003, 08:11
Hi,
du kannst das ganze per Parameter übergeben

Code:
net send localhost nachricht
wird zu
Code:
net send %1 %2
jetzt das ganze speichern und ter MyBat.bat und dann aufrufen durch
Code:
MyBat localhost text
Ich hoffe das Beispiel ich nicht ganz dumm du kannst also jeden Parameter durch ein %nummer ersetzen wobei die Nummern Reihenfolge eingehalten werden muss!

MfG BungeeBug
  Mit Zitat antworten Zitat
merissa

Registriert seit: 19. Apr 2003
4 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 19. Apr 2003, 12:49
hi bungeebug...

ich danke dir für deine bemühung, jedoch glaube ich, das du einen kleinen überlegungsfehler gemacht hast. da 'net (send)' kein interaktives programm ist, ist es möglich, alle benötigten parameter via % aufzulösen (net send %1 %2 > net send 127.0.0.1 message).
bei meinem problem handelt es sich jedoch um ein interaktives programm, bei dem ich nicht mehr parameter mitgeben kann als vorbestimmt. dabei erscheint zwangsweise die aufforderung 'users's password:'. an dieser stelle muss der endusr das passwort übergeben und mit enter abschliesen.
diesen schritt möchte ich in meinem delphi formular schon bewältigen damit der schritt (das passwort im shellfenster einzutippen) wegfällt und mein delphiprogramm dies für den user übernimmt... nicht ganz trivial, oder?

für jeden weiteren vorschlag währe ich dankbar...
merissa / merissa@uncomplied.com
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 19. Apr 2003, 12:57
Das sollte mit Pipes gehen, habe ich mal gehört. Mit ihnen sollte es möglich sein, mit einem Konsolenprogramm zu komminizieren.

Frag mich aber bitte nicht, wie das genau geht, habe es selber noch nie gemacht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
merissa

Registriert seit: 19. Apr 2003
4 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 19. Apr 2003, 13:14
hehe, ja. deine vermutung ist korrekt. jedoch kommt pipen aus der unix welt (mein zuhause *g*) und mir ist nicht bekannt, das die windowsshell pipes (|) unterstütz... lasse mich aber gerne des besseren belehren?!

best regards
merissa / merissa@uncompiled.com
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6
  Alt 19. Apr 2003, 13:18
Nein. Nicht diese Pipes. So was meine ich: http://www.tipps.delphi-source.de/sy...020918-1.shtml

Scheint sogar ein kompletter Source zu sein, wie man sowas macht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7
  Alt 19. Apr 2003, 13:19
In der Konsole geht das soweit ich weiß auch nicht, aber programmseitig sollte es gehen. Ich habe es noch nie benutzt, aber schau dir im Microsoft SDK die Pipes-Sektion an oder geh auf http://msdn.microsoft.com/library/de...base/pipes.asp Vielleicht ist das, was du brauchst.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 19. Apr 2003, 13:40
Moin Zusammen,

wenn man die Ausgabe eines Konsolenprogrammes umleiten will, dann kann man dies auf folgende Arten tun:
  1. Mit > werden alle Meldungen die an STDOUT gehen sollen umgeleitet
  2. Mit 1> wie 1.
  3. Mit 2> werden alle Meldungen die an STDERR gehen sollen umgeleitet

Wichtig dabei: Werden diese Ausgaben in eine Datei umgeleitet, so darf man, bei gleichzeitiger Verwendung von 1> und 2> nicht die gleiche Datei angegeben, Ausnahme wäre das NUL Device.

Eingaben lassen sich mit Hilfe von < simulieren.
Erstellt man sich eine Datei, die ein CR enthält (Notepad öffnen, Enter drücken, Datei speichern, z.B. mit dem Namen CR.DAT), kann man mit < CR.DAT ein ENTER simulieren.
Natürlich dürfen die Dateien auch mehr Daten enthalten.
Unter DOS kann man mit solchen Dateien z.B. die Einrichtung einer Platte mit FDISK komplett automatisieren.
Bei Umlauten muss man aufpassen, die sind bei Konsolenprogrammen anders kodiert als bei GUI Programmen.

Auch das | gibt es unter Windows (obwohl ich nicht genau sagen kann, ob es sich so verhält wie unter UNIX).
Eines der Standardbeispiele:

dir /s | more

Jetzt wird die Ausgabe nach jeweils 25 Zeilen angehalten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
merissa

Registriert seit: 19. Apr 2003
4 Beiträge
 
Delphi 7 Enterprise
 
#9
  Alt 19. Apr 2003, 14:29
danke @ alle, die mir bisher genatwortet haben.

die lösung von chris sieht sehr interassant aus...
kanst du bitte die methodik von STDIN unter windows (< xxx.dat) genauer erläutern oder einen nützlichen link posten?

src des tunneling.bat
Code:
@echo off
cls
echo.
echo passwords fuer user '{usr}' auf ssh-server:
ssh.exe -S +C -c 3des -L {serv_destPort}:{dest_ip}:{serv_inPort} {usr}@{sshs-ip}
nach ausführung & aufbau des tunnels zum sshserver erscheint der dialog: '{usr}'s password:' und genau hier sollte ich die STDIN auf mein GUI (or smothing like that) umleiten, oder via < input.dat lösen.

@ chris: kannst du mir ein konkretes beispiel posten? währe dir dankbar.

gruss, merissa / merissa@uncompiled.com
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#10
  Alt 19. Apr 2003, 15:40
Moin Merissa,

falls ich Deinen Beispielaufruf richtig verstanden habe müsste das so gehen:

Code:
@echo off
cls
echo.
echo passwords fuer user '{usr}' auf ssh-server:
ssh.exe -S +C -c 3des -L {serv_destPort}:{dest_ip}:{serv_inPort} {usr}@{sshs-ip} < INPUT.DAT
Die INPUT.DAT enthält dann sowohl das Passwort, als auch ein ENTER.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz