NetCat Mehrere Befehle mit einer Verbindung senden

voipfoner

Neuer User
Mitglied seit
9 Dez 2007
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Hab grad nen Problem mit NetCat bzw. komme an der stelle grad nicht weiter
Ich möchte gerne mehrere Telnet Befehle an ein Gerät schicken, aber mit EINER Verbindung.

Ist es denn möglich in etwas sowas hier zu schreiben?
Code:
nc 192.168.x.x 1234 Befehl1 | Befehl2 | Befehl3

Ich versuche das ganze grad irgendwie auf der Commandline, später soll es in eine ShellDatei ausgelagert werden.

Ich möchte inprinzip in einer Zeile die Verbindung mit dem Gerät öffnen, die Befehle senden lassen und dann wieder schließen.

So ist es von Hand alles ganz gut
Code:
nc 192.168.x.x 1234
Befehl1
Befehl2
befehl3
exit

Aber sowas kann man doch nicht in eine Shell Datei eingeben oder?
Wenn ja dann wäre das natürlich auch ok.



Wie kommts, dass ich Netcat auf meiner Kiste habe?
hab garnicht das Paket angewählt, oder ist das nur ne abgespeckte nc Version?
 
Wenn ich dich richtig verstanden habe, möchtest Du nicht die Ausgabe von netcat an Befehl1 senden (und dessen Ausgabe an Befehl 2 und dessen Ausgabe an Befehl 3), sondern Du möchtest die Befehle an netcat senden, damit netcat die Befehle an 192.168.x.x senden kann?

Falls ja, sollte es so gehen:

Code:
echo "Befehl1
Befehl2
Befehl3" | netcat 192.168.x.x 1234
 
Besten Dank, genau das meinte ich....aber...
in der normalen händischen CommandLine arbeitet er die Befehle ruckzuck hintereinander ab, alles so wie's sein soll.
Aber wenn ich nun genau das gleiche Script in das Shellscript schreibe und ausführe arbeitet er nur die erste Aktion ab, die darauffolgenden lässt er liegen.
Aber im CommanLine werden jeweils 3 Rückgaben generiert, als ob alle ohne Fehler ausgeführt wurden. Nur fehlen eben die restlichen Befehle.
Komisch.
 
also so müsste es gehen:

netcat IP PORT << 'EOF'
befehl1
befehl2
befehl3
...
EOF

greetz baba
 
Du kannst auch eine Datei mit befehlen schreiben und dann per pipe diese auf netcat senden


Code:
netcat < datei.txt

oder du schreibst einfach mehrere netcat hintereinander

Code:
netcat befehl1
netcat befehl2
netcat befehl3
 
Hmmm alles schon sehr gut...
@ bababong jetzt funktionierts auch aus dem Shellscript :)
@ cando bringt mir leider nicht allzuviel, da die Befehle variabel sein müssen.

ich bräuchte in prinzip sowas wie unten schon beschrieben @bababong, nur Variabel, nach meinen Vorstellungen so.

Code:
COMMAND_VAR[]="Befehl1"
$COMMAND_VAR[]="Befehl2"
$COMMAND_VAR[]="Befehl3"

netcat IP PORT << $COMMAND_VAR


Man soll im Programm an verschiedenen Stellen einen Befehl in das Array schieben können, bis man, nennen wir's mal callOut() aufrufe und dann alle Befehle im Array durch eine Verbindung im Netcat geschickt werden.
Ist es denn möglich einfach ein Element einen array ohne indexnummer (also fortlaufend) hinzuzufügen?

Zu dem netcat Befehl, ist es auch möglich anzugeben, das er bspw. nach jedem abgearbeiteten Befehl ne kurze Pause 0.2 Sek bspw. macht, ohne das das Endgerät ein sleep beherscht? Hab dazu nichts in der netcat doku gefunden.
 
wie wärs denn, wenn du deine variablen befehle mit

Code:
echo "VariablerBefehl" >> datei.txt
...

absetzt und wenn du glaubst, dass du fertig bist ein:

Code:
netcat < datei.txt

machst. Wäre doch genau was Du willst, oder?
 
Wenn Du dynamische Befehle brauchst, ist das Schreiben in eine temporäre Datei vielleicht wirklich die einfachste Lösung.

Ansonsten solltest Du Dich etwas in die Verwendung der Shell einlesen.
 
Habs grad mal ausprobiert...Ich glaube jetzt hab ich das was ich wollte :))
Und wirklich umständlich ist es mit einer kleinen Temp Datei auch nicht.

Besten dank an euch :D

Nur eines wäre noch recht intressant, ist denn netcat (nc) schon per default mit freetz auf der Box?
Hab nämlich da nix ausgewählt.
 
Code:
/usr/bin # ls -l /usr/bin/nc
lrwxrwxrwx    1 root     root           17 Nov 21  2008 /usr/bin/nc -> ../../bin/busybox

scheint bestandteil der busybox zu sein :)
 
so gehts wohl auch:

(echo "mesg test" && echo quit) | nc -w 5 server port
 
Ich glaube, jetzt haben wir die shell so ziemlich durchexerziert ;)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.