def get_sources_data(self):
     """
     Generates the json for the treemap by protoco, then source IP
     """
     network = utils.get_ip_range(self.get_info()[0])
              
     c1 = list()
     q1 = "SELECT src, count(*) \
             FROM packets \
             GROUP BY src"
     for level1 in self.conn.execute(q1):
         if not level1[0] in network:
             continue
             
         c2 = list()
         q2 = "SELECT dst, count(*) \
             FROM packets \
             WHERE src = ? \
             GROUP BY dst"
         for level2 in self.conn.execute(q2, (level1[0],)):
             child = { "name":level2[0], "value":level2[1] }
             c2.append(child)
         
         child = { "name":level1[0], "value":level1[1], "children":c2 }
         c1.append(child)
            
         
     data = { "name": "root", "value":len(c1), "children":c1 }
     return json.dumps(data, indent=2)
Exemple #2
0
    def get_sources_data(self):
        """
        Generates the json for the treemap by protoco, then source IP
        """
        network = utils.get_ip_range(self.get_info()[0])

        c1 = list()
        q1 = "SELECT src, count(*) \
                FROM packets \
                GROUP BY src"

        for level1 in self.conn.execute(q1):
            if not level1[0] in network:
                continue

            c2 = list()
            q2 = "SELECT dst, count(*) \
                FROM packets \
                WHERE src = ? \
                GROUP BY dst"

            for level2 in self.conn.execute(q2, (level1[0], )):
                child = {"name": level2[0], "value": level2[1]}
                c2.append(child)

            child = {"name": level1[0], "value": level1[1], "children": c2}
            c1.append(child)

        data = {"name": "root", "value": len(c1), "children": c1}
        return json.dumps(data, indent=2)
Exemple #3
0
    def get_destination_data(self):

        network = utils.get_ip_range(self.get_info()[0])

        c1 = list()
        q1 = "SELECT src, count(*) \
                FROM packets \
                GROUP BY src"

        for level1 in self.conn.execute(q1):
            if not level1[0] in network:
                continue

            c2 = list()
            q2 = "SELECT proto, count(*) \
                FROM packets \
                WHERE src = ? \
                GROUP BY proto"

            for level2 in self.conn.execute(q2, (level1[0], )):

                c3 = list()
                q3 = "SELECT dst, count(*) \
                      FROM packets \
                      WHERE src = ? AND proto = ? \
                      GROUP BY dst"

                for level3 in self.conn.execute(q3, (
                        level1[0],
                        level2[0],
                )):
                    child = {"name": level3[0], "size": level3[1]}
                    c3.append(child)

                child = {"name": level2[0], "children": c3}
                c2.append(child)

            child = {"name": level1[0], "children": c2}
            c1.append(child)

        data = {"name": "root", "children": c1}
        return json.dumps(data, indent=2)
 def get_destination_data(self):
     
     network = utils.get_ip_range(self.get_info()[0])
              
     c1 = list()
     q1 = "SELECT src, count(*) \
             FROM packets \
             GROUP BY src"
     for level1 in self.conn.execute(q1):
         if not level1[0] in network:
             continue
             
         c2 = list()
         q2 = "SELECT proto, count(*) \
             FROM packets \
             WHERE src = ? \
             GROUP BY proto"
         for level2 in self.conn.execute(q2, (level1[0],)):
             
             c3 = list()
             q3 = "SELECT dst, count(*) \
                   FROM packets \
                   WHERE src = ? AND proto = ? \
                   GROUP BY dst"
             for level3 in self.conn.execute(q3, (level1[0], level2[0],)):
                 child = { 
                     "name":level3[0],"size":level3[1] 
                 }
                 c3.append(child)
         
             child = { "name":level2[0], "children":c3 }
             c2.append(child)
         
         child = { "name":level1[0], "children":c2 }
         c1.append(child)
            
         
     data = { "name": "root", "children":c1 }
     return json.dumps(data, indent=2)
 def generate_data_for_protocol_chart(self):
     """
     Generates the data to display protocol counts by (local) source IP
     """
     network = utils.get_ip_range(self.get_info()[0])
     
     data = {}
     q = "SELECT src, proto, count(*) \
         FROM packets \
         WHERE src IN ( {seq} ) \
         GROUP BY src, proto".format( seq=",".join(["?"]*len(network)))
     for row in self.conn.execute(q, network):
         src = row[0]
         proto = row[1]
         cnt = row[2]
         
         if src not in data:
             data[src] = list()
             
         data[src].append( {"proto":proto, "value":cnt} )
         
     print json.dumps( data ) 
     return json.dumps( data )    
Exemple #6
0
    def generate_data_for_protocol_chart(self):
        """
        Generates the data to display protocol counts by (local) source IP
        """
        network = utils.get_ip_range(self.get_info()[0])

        data = {}
        q = "SELECT src, proto, count(*) \
            FROM packets \
            WHERE src IN ( {seq} ) \
            GROUP BY src, proto".format(seq=",".join(["?"] * len(network)))
        for row in self.conn.execute(q, network):
            src = row[0]
            proto = row[1]
            cnt = row[2]

            if src not in data:
                data[src] = list()

            data[src].append({"proto": proto, "value": cnt})

        print json.dumps(data)
        return json.dumps(data)