JonixLUG Forum
Programmazione => Python => Topic started 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)
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: client=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Creiamo un oggetto socket
Con: client.connect((target_host,target_port))
Ci connettiamo al client
Con:client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")
Inviamo dei dati
Con:response=client.recv(4056)
Riceviamo dei dati
-
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 ;)
-
Scusami quest'ultima cosa non l'ho proprio capita... :o ;D
-
Ho capito, ho letto meglio la PEP, ora capisco, grazie mille dell'informazione riparo subito. :D
-
Bene, concordo con devilicecream, usa librerie aggiornate e identa il codice. Io stesso cerco di farlo a scapito di "perdere tempo".
-
Ho aggiornato il codice, ho sostituito ogni tab con 4 spazi. ;D
-
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
-
Lo so, l'ho fatto :)