Ultima modifica:
Sto realizzando un Ping Sweep IP
Come risultato mi aspettavo non solo di vedere a video i risultati cosa che fa ma anche di salvare tutti i dati in un file.txt invece salva solo i primi dati come posso modificare questo codice?
se faccio in questo modo ottengo un buon risultato, mi potreste controllare il codice se ha bisogno di essere perfezionato?
Python:
def ping():
#Crea un file di testo chiamato "ping.txt" in modalità scrittura
file = open("ping.txt", "w")
net = input("Indirizzo IP di destinazione: ")
net1= net.split('.')
a = '.'
net2 = net1[0]+a+net1[1]+a+net1[2]+a
st1 = int(input("Primo numero: "))
en1 = int(input("Ultimo numero: "))
en1=en1+1
t1= datetime.now()
print ("Scansione ping in corso: ")
for ip in range(st1,en1):
alamat = net2+str(ip)
res = subprocess.call(['ping', alamat])
if res == 0: print( "ping ke", alamat, "OK")
t2= datetime.now()
total =t2-t1
print ("Terminato in: ",total)
#Scrivi i dati di input e i risultati del ping nel file
file.write(f"Indirizzo IP di destinazione: {net}\n")
file.write(f"Primo numero: {st1}\n")
file.write(f"Ultimo numero: {en1-1}\n")
file.write(f"Scansione ping in corso: \n")
for ip in range(st1,en1):
alamat = net2+str(ip)
res = subprocess.call(['ping', alamat])
if res == 0: file.write(f"ping ke {alamat} OK\n")
#Scrivi il tempo totale della scansione
file.write(f"Terminato in: {total}\n")
#Chiudi il file
file.close()
Messaggio unito automaticamente:
Python:
net = input("Indirizzo IP di destinazione: ")
net1= net.split('.')
a = '.'
net2 = net1[0]+a+net1[1]+a+net1[2]+a
st1 = int(input("Primo numero: "))
en1 = int(input("Ultimo numero: "))
en1=en1+1
t1= datetime.now()
print ("Scansione ping in corso: ")
# Apri il file in modalità scrittura
with open("risultati_ping.txt", "w") as file:
# Reindirizza l'output di print sul file
with contextlib.redirect_stdout(file):
for ip in range(st1,en1):
alamat = net2+str(ip)
res = subprocess.call(['ping', alamat])
if res == 0: print( "ping ke", alamat, "OK")
t2= datetime.now()
total =t2-t1
print ("Terminato in: ",total)