2017-03-05 2 views
1
from scapy.all import * 


pkts = rdpcap("lalalao.pcap") 

for p in pkts: 
## print p.time 


     if IP in p: #if packet has IP layer 
        src_ip = p[IP].src 
        dest_ip = p[IP].dst 
        print src_ip 

        f = open('IP_src.txt', 'a+') 
        for ip in src_ip: 
          f.writelines(ip) 

        f.close() 

Wie schreibe ich jedes ip in einer anderen Zeile der Textdatei? Der Code funktioniert nicht!Wie schreibe ich jede IP-Adresse in eine andere Zeile einer Textdatei?

Antwort

3

writelines fügt keine Zeilenumbrüche hinzu.

Schreiben Sie eine Liste von Zeilen in den Stream. Linienseparatoren werden nicht hinzugefügt, so ist es üblich für jede der Linien, die eine Linientrennzeichen am Ende haben.


Verwenden print statement (print function in Python 3.x), die Neue-Zeile am Ende der Zeichenkette schreiben:

with open('IP_src.txt', 'a+') as f: 
    for ip in src_ip: 
     print >>f, ip   # Python 2.x 
     # print(ip, file=f) # Python 3.x 

oder die Leitung manuell anhängen:

with open('IP_src.txt', 'a+') as f: 
    for ip in src_ip: 
     f.write(ip + '\n') 
Verwandte Themen