Питон telnet соединение


Я играл с python 3.1, когда пришел к проблеме. Я хочу подключиться к серверу telnet. Вот мой код:

import sys
import telnetlib

tn = telnetlib.Telnet("10.0.0.138")


tn.read_until(b"Username :", 2)
tn.write(b"n")

tn.read_until(b"Password :", 2)
tn.write(b"n")

tn.read_until(b"=>", 2)
tn.write(b"exitn")

tn.close

Он работает, чтобы читать до "Username :". Также отсутствует сообщение об ошибке при написании строки emty. Но когда я читаю до "пароль:" я получаю пустую строку. Я также получаю пустую строку, когда читаю все.

Пожалуйста, помогите мне, если вы можете.

Править: Вот вывод, когда я подключаюсь к серверу через putty.

 Willkommen am THOMSON TG787v
   Plattform:VDNT-D  Firmware:8.2.5.0  Seriennummer:CP0919MT238
 Bitte identifizieren Sie sich mit Ihrem Benutzernamen und Kennwort
--------------------------------------------------------------------------------




Username :
Password :
------------------------------------------------------------------------

                             ______  Thomson TG787v
                         ___/_____/
                        /         /\  8.2.5.0
                  _____/__       /  \
                _/       /_____/___   Copyright (c) 1999-2009, THOMSON
               //       /         / 
       _______//_______/         / _/______
      /      /            /    / /        /
   __/      /            /    / /        / ___
  / /      /     _______/    / /        / /   /
 /_/______/___________________/ /________/ /___/  
            ___________                   /
  _        /          /              ___/
           /          /                 /
      _____/          /         ________/
           /__________/            /
              _____        /_____/
             /    /      /___/
             /____/      /
                   /___/
              ____/

------------------------------------------------------------------------
CP0919MT238=>

Я нажал кнопку return после "Имя пользователя:", а затем после " пароль:".

3 10

3 ответа:

Лол, у меня был почти такой же маршрутизатор, как и у тебя.

Попробуйте это, бит моего старого кода:

tn = telnetlib.Telnet(HOST)

tn.read_until('Username : ')

tn.write(user+ "\r")

tn.read_until("Password : ")

tn.write(password+ "\n")

tn.write("\r")

Это для Python 2, но попробуйте просто добавить дополнительный пробел после точки с запятой. Кроме того, если это не работает, используйте wireshark и посмотрите, что делает соединение putty, и исправьте свой код, чтобы он соответствовал.

# Script to Telnet in to a host
# For now I have hardcoded the HOST that can be taken as input if required
#run as " python teli.py ""

import time
import telnetlib
HOST ="www.google.com"
tn=telnetlib.Telnet(HOST,"80")
tn.write("GET /index.html HTTP/1.1\nHost:"+HOST+"\n\n")
l=tn.read_all()
print l

Документы по этой ссылке: http://docs.python.org/library/telnetlib.html

У него есть пример кода в конце под разделом "пример Telnet".

Вы можете получить доступ к примеру через: http://docs.python.org/library/telnetlib.html#telnet-example