async def get_ip(self) -> Union[IPv4Address, IPv6Address]:
        """
        get ip address of client
        :return:
        """
        xff = await self.get_x_forwarded_for()
        if xff: return xff[0]
        ip_addr = self._request.transport.get_extra_info('peername')[0]
        return ip_address(ip_addr)
async def get_ip(self) -> Union[IPv4Address, IPv6Address]:
        """
        get ip address of client
        :return:
        """
        xff = await self.get_x_forwarded_for()
        if xff: return xff[0]
        ip_addr = self._request.transport.get_extra_info('peername')[0]
        return ip_address(ip_addr)
async def get_ip ( self ) -> Union [ IPv4Address , IPv6Address ] : xff = await self . get_x_forwarded_for ( ) if xff : return xff [ 0 ] ip_addr = self . _request . transport . get_extra_info ( 'peername' ) [ 0 ] return ip_address ( ip_addr )
get ip address of client
        :return:
get ip address of client : return :