[Python] Connessione telnet che non funziona.

Riccardo Magliocchetti riccardo.magliocchetti a gmail.com
Lun 30 Nov 2015 15:49:00 CET


Il 30/11/2015 15:39, Gabriele Battaglia ha scritto:
>
>
> Reply to the Riccardo Magliocchetti's message, wrote on 30/11/2015 at 15:24:
>> Il 30/11/2015 15:10, Gabriele Battaglia ha scritto:
>>> Qualcosa però non funziona, non compare alcun output, ne errori di
>>> connessione,
>>> semplicemente la console resta vuota per un lungo periodo di tempo,
>>> poi torna il
>>> prompt, così:
>>>
>>> Lo script, fino ad ora è questo, solo un abbozzo.
>>
>>> # stringa da analizzare
>>> # <12> rnbqkbnr pp-ppppp --p----- -------- ---PP--- -------- PPP--PPP
>>> RNBQKBNR B
>>> 3 1 1 1 1 0 279 Exylyan GuestQHWY -1 3 3 39 39 172 180 2 P/d2-d4
>>> (0:11) d4 0 1 0
>>>
>>> import getpass, sys, telnetlib
>>>
>>> HOST = "freechess.org"
>>
>> Se la prossima volta specifichi a cosa vuoi collegarti nel testo della
>> mail agevoli la vita agli altri :)
> Volentieri, ma non ne capisco l'utilità: è un server per giocare a scacchi,
> appunto freechess.org che implementa una connessione telnet.
>
>>
>>> user = raw_input("Inserisci il tuo account remoto: ")
>>> 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") *Ho messo il cancelletto perche' non ho capito a che
>>> serve
>>> questo comando
>>> #tn.write("exit\n") * idem
>>>
>>> print tn.read_all()
>>> ***
>>>
>>> Cosa può essere che non funziona?
>>
>> Prima datti una letta su cos'è telnet su wikipedia e su per cosa viene
>> (ahinoi ancora) usato (hint: una shell).
>
> Fatto, qui: https://it.wikipedia.org/wiki/Telnet#Caratteristiche
> Mi rendo conto dei problemi di sicurezza ma che posso farci? La scelta di usare
> telnet e non SSH, o qualche altro protocollo, è dei gestori del servizio di
> freechess.

Questa era da leggere per il codice commentato che manda ls ed exit

>> Poi ti consiglio di andare su
>> freechess.org e leggere le istruzioni su dove devi collegarti (hint: la
>> porta!).
>
> La porta è quella di default, la 23, anche se penso il server ascolti anche
> sulla 5000.
> Tuttavia, se dal prompt dei comandi digito:
>
> telnet freechess.org
>
> La connessione è immediata, così come è funzionante la negoziazione di user e
> password, insomma, la sessione avviene correttamente e termina quando io invio
> il comando "quit".

Ma non è che ti funziona pure lo script ma tu non stampi niente per accorgertene?

> Sono perciò certo che nessun firewall si opponga, che la porta sia la 23 e che
> non vi siano altri impedimenti, ecco perchè, credevo lo script funzionasse senza
> problemi.

Non pensavo a firewall, pensavo piuttosto a non connettersi sulla porta giusta. 
La doc di freechess che ho visto io punta alla porta 5000.

-- 
Riccardo Magliocchetti
@rmistaken

http://menodizero.it


Maggiori informazioni sulla lista Python