telnet läuft nicht unter Windows SP3 ?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
i1337
User
Beiträge: 11
Registriert: Mittwoch 23. September 2009, 15:39

Was meinst du mit 'läuft' nicht, öfnet er das Script nicht oder macht das Script nicht das, was es soll?

Überprüf am besten nochmal ganz genau die pormpt's und
setzt das TimeOut mal Probeweise hoher (25 oder so).

Habe auch WinXp SP3 und keine Porbleme mit telent.
w.olle
User
Beiträge: 27
Registriert: Sonntag 15. November 2009, 00:28

Das Timeout hochsetzen bringt nichts. Im idle funktioniert es ja. Nur von der console nicht. Ohne print oder debug läuft es auch im idle nicht.

zum besseren Verständnis hier die Ausgabe wenn ich den script mit "python telnet_test.py" starte (hier funktioniert es nicht):
wolfgang@wolfgang-desktop:~/workspace/Python/DECTinst$ python telnet_test.py
ohne dieses print läuft es nicht
ohne dieses print läuft es nicht
ohne dieses print läuft es nicht
Password:
das wars
wolfgang@wolfgang-desktop:~/workspace/Python/DECTinst$
...und hier wenn ich im idle F5 drücke (hier funktioniert es):
ohne dieses print läuft es nicht
ohne dieses print läuft es nicht
ohne dieses print läuft es nicht

Last login: Tue Jul 8 12:07:42 from 192.168.1.1

...gekürzt...

Prompt0001>
das wars
i1337
User
Beiträge: 11
Registriert: Mittwoch 23. September 2009, 15:39

Hm,
also bei mir läuft das Script, musste aber statt \n als prompt \r nehmen.

Probier das mal aus, musste bei anderen Sachen auch schon mal \r\n oder \n\r\n nehmen, je nach Ziel-System
w.olle
User
Beiträge: 27
Registriert: Sonntag 15. November 2009, 00:28

Hallo,
das hat leider alles nichts gebracht.

Ich habe jetzt mal am Server mit gesniffert. Es sieht so aus:
<- login:
-> admin\n
-> admin\n
<- Password:
Warum sendet python das Passwort bevor es den Passwort Prompt erhalten hat ??

Wenn ich die Debug Option einschalte sieht es OK aus:
<- login:
-> admin\n
<- Password:
-> admin\n
w.olle
User
Beiträge: 27
Registriert: Sonntag 15. November 2009, 00:28

GELÖST !!

I habe mal ein bisschen mit sleep() herum gespielt. Wahrscheinlich ist das Problem, dass der 'read_until' den socket zu lange blockiert. Dieses Problem habe ich nicht bei größeren Ausgaben, sondern nur bei login: Password:

Hier der funktionierende Code. Ich hab ihn getestet unter Ubuntu, als auch WIN-XP SP3 (Binary erzeugt mit py2exe):

Code: Alles auswählen

from telnetlib import Telnet
from time import sleep
tn = Telnet("192.168.1.100", port=23, timeout=2)
print (tn.read_until('login:',5))
sleep(1)
tn.write('admin\n')
print (tn.read_until('Password:',5))
sleep(1)
tn.write('admin\n')
print "Password is sent"
print (tn.read_until('01>',30))
Ist das jetzt ein Bug oder normal ?

Nochmals vielen Dank für die Unterstützung !
Antworten