pythonlog-analysis

To summarize total of string that appears in output in python


For instance, I want to show that how many times is Dest port number 53 is appeared, and there are 2000 datas in the log file, so I need to show each Dest port sum. This is my code :

def main():
    f = openfile("/Users/rin/Desktop/new sec/2017-04-18_010.082.012.003.txt")
    if f is None:
        print("File not found")
        return
    s = splitline(f)
    for el in s:
        if len(el) > 50:
            p = parselog(el)
            if "dstport" in p:

             print("Dest Port : %s" % p["dstport"])
             if "app" in p:
                 print("Apps : %s" % p["app"])
            print("")

Output :

Dest Port : 53
Apps : DNS

Dest Port : 123
Apps : NTP

Dest Port : 53
Apps : DNS

Dest Port : 53
Apps : DNS

Solution

  • def main():
        f = openfile("/Users/rin/Desktop/new sec/2017-04-18_010.082.012.003.txt")
        if f is None:
            print("File not found")
            return
        s = splitline(f)
    
        # add a counter
        counts = {}
    
        for el in s:
            if len(el) > 50:
                 p = parselog(el)
    
                 if "dstport" in p:
                     # increment counter
                     if p["dstport"] in counts:
                         counts[str(p["dstport"])] += 1
                     else:
                         counts[str(p["dstport"])] = 1
                     print("Dest Port : %s" % p["dstport"])
                 if "app" in p:
                     print("Apps : %s" % p["app"])
                 print("")
    
        # output the count
        for k, v in counts.iteritems():
             print 'Dest Port %s Count: %s' % (k, v)