From 5d0fad48eca3ae9b6b1d76b92be1a28965e622a5 Mon Sep 17 00:00:00 2001 From: Sheng Date: Mon, 20 Nov 2017 17:58:32 +0800 Subject: [PATCH] Added get_addr to get real client addr --- main.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index a9dc02d..90873c4 100644 --- a/main.py +++ b/main.py @@ -206,8 +206,16 @@ class WsockHandler(tornado.websocket.WebSocketHandler): def check_origin(self, origin): return True + def get_addr(self): + ip = self.request.headers.get_list('X-Real-Ip') + port = self.request.headers.get_list('X-Real-Port') + addr = ':'.join(ip + port) + if not addr: + addr = '{}:{}'.format(*self.stream.socket.getpeername()) + return addr + def open(self): - self.src_addr = '{}:{}'.format(*self.stream.socket.getpeername()) + self.src_addr = self.get_addr() logging.info('Connected from {}'.format(self.src_addr)) worker = workers.pop(self.get_argument('id'), None) if not worker: