Python 确定异步IO套接字服务器中客户端的主机名

Python 确定异步IO套接字服务器中客户端的主机名,python,python-asyncio,Python,Python Asyncio,看起来有一种方法可以使用socket.getpeername()获取普通旧套接字的标识符。但是,在使用asyncio.start\u server时,似乎没有任何方法可以访问套接字。是否有任何方法可以为异步IO套接字服务器获取客户端的唯一标识符(例如IP地址) async def client_handler(reader: StreamReader, writer: StreamWriter): print("Client connected at {some_ip_address_o

看起来有一种方法可以使用
socket.getpeername()
获取普通旧套接字的标识符。但是,在使用
asyncio.start\u server
时,似乎没有任何方法可以访问套接字。是否有任何方法可以为异步IO套接字服务器获取客户端的唯一标识符(例如IP地址)

async def client_handler(reader: StreamReader, writer: StreamWriter):
    print("Client connected at {some_ip_address_or_identifier}")  # ?

async def main():
    IP = "0.0.0.0"
    PORT = 8080
    loop = asyncio.get_event_loop()
    server = await asyncio.start_server(client_handler, IP, PORT)
    await server.serve_forever()

asyncio.run(main())
您只需执行以下操作:

addr =  writer.get_extra_info('peername')

根据

mm。。你检查过这里的例子了吗。看起来你可以做writer。获取额外信息(“peername”)来获取地址,还是我错了?@ranifisch啊,谢谢,我没意识到StreamWriter有这个功能。