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