Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » Не получается указать порт в telnet соединениии [RSS Feed]

#1 Март 19, 2010 09:31:45

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается указать порт в telnet соединениии

# -*- 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()
Подскажите что неправильно делаю?



Отредактировано (Март 19, 2010 09:37:44)

Офлайн

#2 Март 19, 2010 10:04:49

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Не получается указать порт в telnet соединениии

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.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Март 19, 2010 10:06:56

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

Не получается указать порт в telnet соединениии

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?



Офлайн

#4 Март 19, 2010 10:37:38

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается указать порт в telnet соединениии

avdoshkin

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

PooH

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

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

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

USERCODE: ADMINPASSWORDexit;



Отредактировано (Март 19, 2010 10:41:59)

Офлайн

#5 Март 19, 2010 11:28:36

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Не получается указать порт в telnet соединениии

Случайно не \r\n нужно посылать для перевода строки?



Офлайн

#6 Март 19, 2010 11:39:46

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается указать порт в telnet соединениии

Попозже тоже так подумал. \r\n не прокатывает(не в те места вставляется)…, а просто \r в самы раз=)) Сервер виндовский. С unix подобной \n можно было.



Офлайн

#7 Март 19, 2010 14:08:39

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается указать порт в telnet соединениии

У 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]



Офлайн

#8 Март 20, 2010 11:22:10

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

Не получается указать порт в telnet соединениии

попробуй time.sleep()



Офлайн

#9 Март 20, 2010 19:15:59

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается указать порт в telnet соединениии

уже ставил. и 5 сек и 10,15 Распечатка полюбому должна уже была пройти.



Офлайн

#10 Март 21, 2010 18:42:17

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

Не получается указать порт в telnet соединениии

Divergent
уже ставил. и 5 сек и 10,15 Распечатка полюбому должна уже была пройти.
у меня проблем было нужно было дождаться чтобы образ загрузился на коммутатор приходилось ждать, 3 минуты, и тогда можно было команду послать.



Офлайн

  • Начало
  • » Network
  • » Не получается указать порт в telnet соединениии[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version