Python - Telnet
Telnet é um tipo de protocolo de rede que permite a um usuário em um computador fazer logon em outro computador que também pertence à mesma rede. O comando telnet é usado junto com o nome do host e, em seguida, as credenciais do usuário são inseridas. Após o login bem-sucedido, o usuário remoto pode acessar os aplicativos e dados de forma semelhante ao usuário regular do sistema. É claro que alguns privilégios podem ser controlados pelo administrador do sistema que configura e mantém o sistema.
Em Python, o telnet é implementado pelo módulo telnetlib que possui a classe Telnet que possui os métodos necessários para estabelecer a conexão. No exemplo a seguir, também usamos o módulo getpass para lidar com o prompt de senha como parte do processo de login. Também assumimos que a conexão é feita a um host Unix. Os vários métodos da classe telnetlib.Telnet usados no programa são explicados abaixo.
Telnet.read_until - Lê até que uma determinada string, esperada, seja encontrada ou até que os segundos de tempo limite tenham passado.
Telnet.write - Grava uma string no soquete, dobrando todos os caracteres IAC. Isso pode bloquear se a conexão for bloqueada. Pode levantar socket.error se a conexão for fechada.
Telnet.read_all () - Lê todos os dados até EOF; bloquear até que a conexão seja fechada.
Exemplo
import getpass
import telnetlib
HOST = "http://localhost:8000/"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")
tn.write("ls\n")
tn.write("exit\n")
print tn.read_all()
Quando executamos o programa acima, obtemos a seguinte saída -
- lrwxrwxrwx 1 0 0 1 Nov 13 2012 ftp -> .
- lrwxrwxrwx 1 0 0 3 Nov 13 2012 mirror -> pub
- drwxr-xr-x 23 0 0 4096 Nov 27 2017 pub
- drwxr-sr-x 88 0 450 4096 May 04 19:30 site
- drwxr-xr-x 9 0 0 4096 Jan 23 2014 vol
Observe que esta saída é específica para o computador remoto cujos detalhes são enviados quando o programa é executado.