JonixLUG Forum

Programmazione => Python => Topic started by: NebulasIT on November 15, 2016, 09:11:10 PM

Title: [PythonXHacker] Client TCP
Post by: NebulasIT on November 15, 2016, 09:11:10 PM
Link: https://github.com/NebulasProgrammer/Il-Pitone (https://github.com/NebulasProgrammer/Il-Pitone)

Al tempo del mio vecchio compleanno ebbi regalato dalla mia ragazza un libro chiamato: "Python per Hacker", è un libro simpatico nella qualche sta qualche codice interessante, in questa sezione voglio postare un tool che sto programmando (che vorrei fosse ampliato da voi, in quanto non sono espertissimo del python), che contiene diciamo un pò di possibili parametri. Ad esempio nella prima versione del programma (0.1) ho aggiunto il parametro "Client TCP" messo sottoforma di funzione... Il fine è sperimentare e sperimentare, per apprendere il funzionamento e magari chissà far uscire un Tool abbastanza utile, spero che quest'idea vi garba e magari mettete mano sul codice, farò un topic per ogni funzione implementata, ora vediamo la prima funzione.

CLIENT TCP:

Ci saranno sempre le innumerevoli volte in cui dovrai utilizzare un Client TCP per testare alcuni servizi, essere capace di creare un Client TCP può essere di formidabile aiuto, ora discutiamo della funzione del programma del Client TCP... (Per poi sviluppare un Server TCP)

Code: You are not allowed to view links. Register or Login
def client_tcp():
target_host=raw_input("Inserire il target Host (prova inizialmente con www.google.it): ")
target_port=80
client=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((target_host,target_port))
client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")
response=client.recv(4056)
print response

Con:
Code: You are not allowed to view links. Register or Login
client=socket.socket(socket.AF_INET, socket.SOCK_STREAM) Creiamo un oggetto socket

Con:
Code: You are not allowed to view links. Register or Login
client.connect((target_host,target_port)) Ci connettiamo al client

Con:
Code: You are not allowed to view links. Register or Login
client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n") Inviamo dei dati

Con:
Code: You are not allowed to view links. Register or Login
response=client.recv(4056) Riceviamo dei dati

Title: Re:[PythonXHacker] Client TCP
Post by: devilicecream on November 15, 2016, 09:50:15 PM
Mi sembra un buon inizio!
Leggiti anche come lavorare con i socket in Python 3.5 (https://docs.python.org/3/howto/sockets.html), c'è un bell'esempio di custom class che astrae il triste lavoro di inizializzare il socket e dividere i messaggi in chunks per l'invio/ricezione.


E please! Python ha una cosa bellissima che è la PEP (https://www.python.org/dev/peps/). Una delle cose fondamentali è la leggibilità del codice e questo include l'uso degli spazi (4 o 2 dipendentemente da diverse correnti di pensiero) al posto dei tab.
Molto importante se pubblichi codice su github! Certa gente non guarda nemmeno il codice se vede che indenti con i tab in Python  ;)
Title: Re:[PythonXHacker] Client TCP
Post by: NebulasIT on November 15, 2016, 10:04:04 PM
Scusami quest'ultima cosa non l'ho proprio capita...  :o  ;D
Title: Re:[PythonXHacker] Client TCP
Post by: NebulasIT on November 15, 2016, 10:29:03 PM
Ho capito, ho letto meglio la PEP, ora capisco, grazie mille dell'informazione riparo subito. :D
Title: Re:[PythonXHacker] Client TCP
Post by: lynx on November 15, 2016, 11:55:54 PM
Bene, concordo con devilicecream, usa librerie aggiornate e identa il codice. Io stesso cerco di farlo a scapito di "perdere tempo".
Title: Re:[PythonXHacker] Client TCP
Post by: NebulasIT on November 16, 2016, 08:30:34 AM
Ho aggiornato il codice, ho sostituito ogni tab con 4 spazi.  ;D
Title: Re:[PythonXHacker] Client TCP
Post by: CrashTest on November 21, 2016, 03:43:24 PM
You are not allowed to view links. Register or Login
Ho aggiornato il codice, ho sostituito ogni tab con 4 spazi.  ;D
Se per abitudine usi il tasto TAB ti conviene impostare nel tuo text editor/IDE che 1 tab = 4 spazi. In questo modo quando schiacci TAB automaticamente fa 4 spazi. Risparmi molto tempo rispetto a schiacciare 4 volte la barra spaziatrice
Title: Re:[PythonXHacker] Client TCP
Post by: NebulasIT on November 21, 2016, 03:59:23 PM
Lo so, l'ho fatto  :)