Питон 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 ответа:
Лол, у меня был почти такой же маршрутизатор, как и у тебя.
Попробуйте это, бит моего старого кода:
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