ich eine Protokolldatei aus einer Firewall in txt Form haben, zum Beispiel:Beitritt zur Ausgabe von mehreren regulären Ausdrücken
src=10.10.10.1 srcPort=15003 dst=20.20.20.1 service=443 host=FirewalName proto=tcp
src=30.30.30.1 srcPort=18003 dst=40.40.40.1 service=8080 host=FirewalName proto=tcp
Ich habe die regulären Ausdrücke, die Informationen, die ich brauche zu extrahieren gebaut (src, dst, Service), aber ich muss in der Lage sein, die Ausgabe der regulären Ausdrücke zu verbinden und die Ausgabe in Datei mit einem Tab zwischen jedem und "TCP" vor jedem Service = Objekt, für jede Zeile in der Protokolldatei, so die Ausgabe zu schreiben die neue Datei sieht so aus:
10.10.10.1 20.20.20.1 TCP 443
30.30.30.1 40.40.40.1 TCP 8080
Auch ich muss in der Lage sein, zwischen zu unterscheiden en „TCP
“ und „UDP
“ im Dienst = Teil der Eingabedatei, so dass das, was in die Ausgabedatei geschrieben wird, ist zum Beispiel richtig: wenn die dritte Zeile der Eingabedatei ist:
src=50.50.50.1 srcPort=21003 dst=60.60.60.1 service=161 host=FirewalName proto=udp
I bin hier steckengeblieben und brauche Hilfe.
import re
import sys
with open("SFD-IPs.txt", "r") as file:
text = file.read()
sources = re.findall(r'src=(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', text)
dest = re.findall(r'dst=(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})', text)
service = re.findall(r'service=(\d+)', text)
with open("output.txt", "w") as TufinReq:
TufinReq.write(sIP)
f=open("output.txt", "r")
del_list = ["src=", "dst=", "service="]
list = []
for line in f:
for word in del_list:
if word in line:
line = line.replace(word, "")
list.append(line)
f.close()
f=open("output.txt", "w+")
for line in list:
f.write(line)
f.close()
Vergessen Sie nicht, es zu akzeptieren :) – ettanany