在網(wǎng)絡(luò)里與服務(wù)器通訊時,需要找到服務(wù)器的IP
地址,但是人們輸入的經(jīng)常是域名地址,它們只是方便人類來記憶,但實際上還是需要
IP
地址的,這時就需要把域名轉(zhuǎn)換為
IP
地址,在這個例子里使用協(xié)程來獲取域名的
IP
地址,由于獲取過程中會阻塞,使用協(xié)程就可以解決這個問題。
源碼如下:
import asyncio
import logging
import socket
import sys
TARGETS = [
('blog.csdn.net', 'https'),
('baidu.com', 'https'),
('python.org', 'https'),
]
async
def
main(loop, targets):
for target
in targets:
info =
await loop.getaddrinfo(
*target,
proto=socket.IPPROTO_TCP,
)
for host
in info:
print('{:20}: {}'.format(target[0], host[4][0]))
event_loop = asyncio.get_event_loop()
try:
event_loop.run_until_complete(main(event_loop, TARGETS))
finally:
event_loop.close()
結(jié)果輸出如下:
blog.csdn.net : 47.95.49.160
baidu.com : 220.181.57.217
baidu.com : 111.13.101.208
baidu.com : 123.125.114.144
python.org : 23.253.135.79
來源:
大坡3D
軟件開發(fā)