def get_port(self):
        value = self.get_json_argument('port')
        if not value:
            return DEFAULT_PORT

        port = to_int(value)
        if port is None or not is_valid_port(port):
            raise InvalidValueError('Invalid port: {}'.format(value))
        return port
    def get_real_client_addr(self):
        ip = self.request.remote_ip

        if ip == self.request.headers.get('X-Real-Ip'):
            port = self.request.headers.get('X-Real-Port')
        elif ip in self.request.headers.get('X-Forwarded-For', ''):
            port = self.request.headers.get('X-Forwarded-Port')
        else:
            # not running behind an nginx server
            return

        port = to_int(port)
        if port is None or not is_valid_port(port):
            # fake port
            port = 65535

        return (ip, port)
Ejemplo n.º 3
0
    def get_real_client_addr(self, xffirst=False):
        ip = self.request.remote_ip

        if ip == self.request.headers.get('X-Real-Ip'):
            port = self.request.headers.get('X-Real-Port')
        else:
            ips = self.request.headers.get('X-Forwarded-For', '')
            if not ips:
                return
            if not xffirst:
                if ip not in ips:
                    return
            else:
                ip = ips.split(',')[0].strip()
                if not netutil.is_valid_ip(ip):
                    return
            port = self.request.headers.get('X-Forwarded-Port')

        port = to_int(port)
        if port is None or not is_valid_port(port):
            # fake port
            port = 65535

        return (ip, port)
Ejemplo n.º 4
0
 def test_to_int(self):
     self.assertEqual(to_int(''), None)
     self.assertEqual(to_int(None), None)
     self.assertEqual(to_int('22'), 22)
     self.assertEqual(to_int(' 22 '), 22)