第十章:使用进程、线程和协程提供并发性-asyncio:异步I/O、事件循环和并发工具-与域名服务交互-按地址查找名

本文介绍使用Python的asyncio模块和getnameinfo()函数,通过协程并发地将多个IP地址转换为主机名和协议名的过程。示例代码展示了如何定义目标IP和端口,以及如何运行协程来获取并打印主机名信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

10.5.11.2 按地址查找名
协程getnameinfo()的工作正好反过来,在可能的情况下,可以将一个IP地址转换为一个主机名,已及将一个端口号转换为一个协议名。

import asyncio
import logging
import socket
import sys

TARGETS = [
    ('220.181.57.216',443),
    ('66.102.251.33',443),
    ]

async def main(loop,targets):
    for target in targets:
        info = await loop.getnameinfo(target)
        print('{:15}:{} {}'.format(target[0],*info))

event_loop = asyncio.get_event_loop()
try:
    event_loop.run_until_complete(main(event_loop,TARGETS))
finally:
    event_loop.close()

这个例子显示如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值