Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- Created on Sun Jul 18 11:12:29 2021
- @author: mf18626
- """
- import os
- import sys
- import json
- def readLogFile(logFile):
- try:
- with open(logFile) as f:
- logLines = f.readlines()
- return logLines
- except FileNotFoundError:
- print("No such file")
- return None
- def parse(logLine):
- keywords = ["in=","out=","src=","dst=","proto=","spt=","dpt=","ack","syn","psh","fin","rst"]
- tokenizedLogLine = logLine.split()
- # Inizializzo i campi, che saranno comuni a tutti i protocolli; poi qualcuno li popola, qualcuno no
- fields={"timestamp":"",
- "eventId":"",
- "inIface":"",
- "outIface":"",
- "srcIP":"",
- "dstIP":"",
- "spt":"",
- "dpt":"",
- "proto":"",
- "syn":"",
- "ack":"",
- "psh":"",
- "fin":"",
- "rst":""}
- # Il timestamp รจ sempre al primo posto
- fields.update({"timestamp":tokenizedLogLine[0]})
- # Utilizzo sempre il quarto campo come identificatore per poi ordinare su elastic
- fields.update({"eventId":tokenizedLogLine[3]})
- for token in tokenizedLogLine:
- for keyword in keywords:
- for token in tokenizedLogLine:
- if keyword.lower() in token.lower():
- if keyword == "in=":
- fields.update({"inIface":token.lower().split("=")[1]})
- elif keyword == "out=":
- fields.update({"outIface":token.lower().split("=")[1]})
- elif keyword =="src=":
- fields.update({"srcIP":token.lower().split("=")[1]})
- elif keyword =="dst=":
- fields.update({"dstIP":token.lower().split("=")[1]})
- elif keyword =="proto=":
- fields.update({"proto":token.lower().split("=")[1]})
- elif keyword =="spt=":
- fields.update({"spt":token.lower().split("=")[1]})
- elif keyword =="dpt=":
- fields.update({"dpt":token.lower().split("=")[1]})
- elif keyword =="syn":
- fields.update({"syn":token.lower()})
- elif keyword =="ack":
- fields.update({"ack":token.lower()})
- elif keyword =="psh":
- fields.update({"psh":token.lower()})
- elif keyword =="fin":
- fields.update({"fin":token.lower()})
- elif keyword =="rst":
- fields.update({"rst":token.lower()})
- return fields
- logFileArray = readLogFile("campionato.log")
- i = 0
- for logLine in logFileArray:
- with open("input/jsonizedlog-"+str(i)+".json","w") as jsonfile:
- json.dump(parse(logLine),jsonfile)
- i += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement