remove port from ip

This commit is contained in:
Raphael Deem
2017-10-23 21:01:44 -07:00
parent 5bcbc5a337
commit c2191153cf
3 changed files with 35 additions and 4 deletions

View File

@@ -46,7 +46,8 @@ class Request(dict):
__slots__ = (
'app', 'headers', 'version', 'method', '_cookies', 'transport',
'body', 'parsed_json', 'parsed_args', 'parsed_form', 'parsed_files',
'_ip', '_parsed_url', 'uri_template', 'stream', '_remote_addr'
'_ip', '_parsed_url', 'uri_template', 'stream', '_remote_addr',
'_socket', '_port'
)
def __init__(self, url_bytes, headers, version, method, transport):
@@ -167,11 +168,27 @@ class Request(dict):
@property
def ip(self):
if not hasattr(self, '_ip'):
self._ip = (self.transport.get_extra_info('peername') or
(None, None))
if not hasattr(self, '_socket'):
self._get_address()
return self._ip
@property
def port(self):
if not hasattr(self, '_socket'):
self._get_address()
return self._port
@property
def socket(self):
if not hasattr(self, '_socket'):
self._get_socket()
return self._socket
def _get_address(self):
self._socket = (self.transport.get_extra_info('peername') or
(None, None))
self._ip, self._port = self._socket
@property
def remote_addr(self):
"""Attempt to return the original client ip based on X-Forwarded-For.