Python:如何从FQDN获取IP地址

2024-04-25 22:31:54 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有FQDN例如。,www.google.com,如何获取相应的IP地址?在


Tags: comwwwgooglefqdn
3条回答

您可以使用socket.getaddrinfo。这将为您提供与名称相关联的不同IP地址,还可以为您提供IPv6地址。在

根据文件:

>>> import socket
>>> help(socket.getaddrinfo)
Help on built-in function getaddrinfo in module _socket:

getaddrinfo(...)
    getaddrinfo(host, port [, family, socktype, proto, flags])
        -> list of (family, socktype, proto, canonname, sockaddr)

    Resolve host and port into addrinfo struct.
>>> from pprint import pprint
>>> pprint(socket.getaddrinfo('www.google.com', 80))
[(2, 1, 6, '', ('74.125.230.83', 80)),
 (2, 2, 17, '', ('74.125.230.83', 80)),
 (2, 3, 0, '', ('74.125.230.83', 80)),
 (2, 1, 6, '', ('74.125.230.80', 80)),
 (2, 2, 17, '', ('74.125.230.80', 80)),
 (2, 3, 0, '', ('74.125.230.80', 80)),
 (2, 1, 6, '', ('74.125.230.81', 80)),
 (2, 2, 17, '', ('74.125.230.81', 80)),
 (2, 3, 0, '', ('74.125.230.81', 80)),
 (2, 1, 6, '', ('74.125.230.84', 80)),
 (2, 2, 17, '', ('74.125.230.84', 80)),
 (2, 3, 0, '', ('74.125.230.84', 80)),
 (2, 1, 6, '', ('74.125.230.82', 80)),
 (2, 2, 17, '', ('74.125.230.82', 80)),
 (2, 3, 0, '', ('74.125.230.82', 80))]

注意:gethostbyname在C中不推荐使用(Pythonsocket.gethostbyname是用它实现的),因为它不支持IPv6地址,getaddrinfo是推荐的替代品。在

使用socket.gethostbyname(hostname)参见:http://docs.python.org/library/socket.html#socket.gethostbyname

最简单的方法是^{}。在

相关问题 更多 >