我有一个代表域名的字符串。如何使用Python 3.x获取对应的IP地址?如下所示:
>>> get_ip('http://www.stackoverflow.com')
'64.34.119.12'发布于 2011-01-27 18:23:33
>>> import socket
>>> def get_ips_for_host(host):
try:
ips = socket.gethostbyname_ex(host)
except socket.gaierror:
ips=[]
return ips
>>> ips = get_ips_for_host('www.google.com')
>>> print(repr(ips))
('www.l.google.com', [], ['74.125.77.104', '74.125.77.147', '74.125.77.99'])发布于 2011-01-27 18:18:08
Python 3.1.3 (r313:86834, Nov 27 2010, 18:30:53) [MSC v.1500 32 bit (Intel)] on win32
>>> import socket
>>> socket.gethostbyname('cool-rr.com')
'174.120.139.162'请注意:
如果这些方法有问题,请改用socket.getaddrinfo()。
发布于 2011-01-27 18:18:15
最简单的方法是使用socket.gethostbyname()。但是,这不支持IPv6,并且基于过时的C调用gethostbanme()。如果你关心这些问题,你可以使用更通用的socket.getaddrinfo()。
https://stackoverflow.com/questions/4815065
复制相似问题