I don’t know it’s right?How to modify the code?

  Kiến thức lập trình

enter image description here

i receive snort_alert , but i don’t know how to make data(alertmsg) from bytes type to Str type
i can’t paser data
The snort_alert of the snort I received is of type bytes, when should I convert it to a string type/binary type, and how do I convert it?

    def start_recv(self):
        if os.path.exists(SOCKFILE):
            os.unlink(SOCKFILE)
    
        self.unsock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
        self.unsock.bind(SOCKFILE)
        logger.info("Unix Domain Socket listening...%s",SOCKFILE)
        self.recv_loop()
    
    def recv_loop(self):
   
        while True:
            data = self.unsock.recv(BUFSIZE)
            # print("Received alert:", data)
            time.sleep(0.5)
            if data:
                logger.debug("Send {0} bytes of data.".format(sys.getsizeof(data)))
                self.tcp_send(data)
            else:
                pass
    
    def send_json(self, data):
        s = json.dumps(data)
        r = requests.post(CONTROLLER_URL, data=s)
        r
    
    def tcp_send(self, data):
        data2 = data[:BUFSIZE]
        msg = alert.AlertPkt.parser(data2)
        print('data2:', data2)
        print('msg.alertmsg', type(msg.alertmsg), msg.alertmsg)
        s1 = '%s' % ''.join(msg.alertmsg)
        s2 = self.packet_print(msg.pkt, s1)
        print('s2:', s2)
        self.send_json(s2)  # 用RESTful API发送警告
        # self.nwsock.sendall(json.dumps(s2)+'n') # 用socket发送警告
        logger.info("Send the alert messages to floodlight.")

if __name__ == '__main__':
server = SnortListener()
server.start_recv()

New contributor

yuandao lei is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

LEAVE A COMMENT