# Automatisierung von Telnet



## trunkenstein (28. Dezember 2011)

Hallo Leute,

ich habe mal eine Frage die ich leider so noch nicht im Netz gefunden habe.

Es geht um folgende Situation:

Ich muss bei ca 200 Netzwerkgeräten welche sich NUR per telnet Ansprechen lassen (Ist ein abgeschirmtes netzwerk, ergo, Sicherheit beim Zugriff ist nicht wichtig)

Auf 80% der Geräte komme ich direkt, auf 20% muss ich erst noch über einen Router connecten.

Jetzt ergibt sich diese Aufgabe:

Ich muss auf allen ~200 Geräten eine Abfrage machen nach einem bestimmten gesetzten Parameter und sollte dieser nicht da sein ihn setzen.

Am Anfang muss erstmal geschaut werden WIE ich mich gerade connecte, direkt oder über einen Router, sprich per "WAIT" befehl auf einen String warten anhand dessen ich bestimmen kann über welches Gerät ich gerade connecte
(Das Problem ist, manche Geräte sind Ethernet fähig, manche nur X.25/X.28, vor diesen sind aber Ethernet fähige Router vorgeschaltet).

Das ganze muss mit einer Abfrage geschehen ala "IF param1 = 0 then SET param = 1 ELSE NEXT"
Natürlich muss dies alles mitgeloggt werden um es nachvollziehen zu können.

Für so ein Problem habe ich leider KEINE Lösung gefunden, ich würde mich auch mit Java/C/C++/C#/VB oder dergleichen auseinandersetzen nur weiß ich leider nicht welche die geeignetste Sprache währe.

Das ganze sollte vorzugsweise unter Windows laufen und erweiterbar sein (Listen mit IP's + Gerätenamen einlesen [Gerätename wegen Weiterverbindung per X.25/X.28], Parameter die Gesucht und geändert werden sollen veränderbar)

Hätte da jemand eine Idee was die beste Herangehensweise währe?


----------



## Loveboat (30. Mai 2013)

PERL-Programmierung......


----------



## Bullja (31. Mai 2013)

Mein Setup für derart Dinge:
Python (3.x), pywin32, Distribute und *winpexpect*

Weitere hilfreiche Links:

http://linux.die.net/man/1/expect
http://www.noah.org/python/pexpect/doc/pexpect.html
http://www.thegeekstuff.com/2010/10/expect-examples/
Aufgehalten wurde ich bei meinem Systemen bei Verwendung der sendline(text) Funktion. Die sendline Funktion hängt ans Ende der Zeichenkette automatisch die Carriage Return UND New Line feeds mit, dieses konnte ich nicht beeinflussen. Stattdessen rufe ich send(text) und danach sendcontrol("m") auf um ein Return zu senden.


----------

