Найти - Пользователи
Полная версия: Не получается указать порт в telnet соединениии
Начало » Network » Не получается указать порт в telnet соединениии
1 2
Divergent
# -*- coding: cp1251 -*-
import getpass
import sys
import telnetlib
#HOST = "10.10.10.10, 10"
#user = raw_input("Enter your remote account: ")
#password = raw_input("Enter your remote password: ")
#domain = raw_input("Enter Domain: ")
#vvod = raw_input("Enter your coomand: ")
tn = telnetlib.Telnet('10.10.10.10, 10, 10')
tn.read_until("USERCODE: ")
tn.write('Admin'+"\n")
tn.read_until("PASSWORD: ")
tn.write('Password'+"\n")
tn.read_until("DOMAIN: ")
tn.write("\n")
tn.write("exit"+"\n")
print tn.read_all()
Подскажите что неправильно делаю?
PooH
HOST = '127.0.0.1'
PORT = 21
tn = telnetlib.Telnet(HOST, PORT)
В доке же все ясно написано:
class Telnet([host])

Telnet represents a connection to a Telnet server. The instance is initially not connected by default; the open() method must be used to establish a connection. Alternatively, the host name and optional port number can be passed to the constructor, to, in which case the connection to the server will be established before the constructor returns.
Do not reopen an already connected instance.
avdoshkin
Divergent
# -*- coding: cp1251 -*-
import getpass
import sys
import telnetlib
#HOST = "10.10.10.10, 10"
#user = raw_input("Enter your remote account: ")
#password = raw_input("Enter your remote password: ")
#domain = raw_input("Enter Domain: ")
#vvod = raw_input("Enter your coomand: ")
tn = telnetlib.Telnet('10.10.10.10, 10, 10')
tn.read_until("USERCODE: ")
tn.write('Admin'+"\n")
tn.read_until("PASSWORD: ")
tn.write('Password'+"\n")
tn.read_until("DOMAIN: ")
tn.write("\n")
tn.write("exit"+"\n")
print tn.read_all()
Подскажите что неправильно делаю?
Порт точно 10?
Divergent
avdoshkin

не в порте дело. это так для примера, на сам деле все данные другие.

PooH

Можно и как я писал (документацию перечитал вдоль и поперёк по telnetlib), просто дело не в этом оказалось. Почему-то +“\n” не отправляется и поэтому не дождаться “PASSWORD: ”
А так судя по всему коннект прошёл.

Осталось только понять непонятное. Почему не даётся переход на след строку. Может есть у кого мысли?

В ответ пришло

USERCODE: ADMINPASSWORDexit;
igor.kaist
Случайно не \r\n нужно посылать для перевода строки?
Divergent
Попозже тоже так подумал. \r\n не прокатывает(не в те места вставляется)…, а просто \r в самы раз=)) Сервер виндовский. С unix подобной \n можно было.
Divergent
У tn.read_all есть какой-то лимит? А то большие распечатки почему-то не идут. С маленькими всё ок.

Traceback (most recent call last):
File "C:/Python26/test.py", line 32, in <module>
a=tn.read_all()
File "C:\Python26\lib\telnetlib.py", line 325, in read_all
self.fill_rawq()
File "C:\Python26\lib\telnetlib.py", line 516, in fill_rawq
buf = self.sock.recv(50)
error: [Errno 10054]
avdoshkin
попробуй time.sleep()
Divergent
уже ставил. и 5 сек и 10,15 Распечатка полюбому должна уже была пройти.
avdoshkin
Divergent
уже ставил. и 5 сек и 10,15 Распечатка полюбому должна уже была пройти.
у меня проблем было нужно было дождаться чтобы образ загрузился на коммутатор приходилось ждать, 3 минуты, и тогда можно было команду послать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB