2011-01-07 19 views

答えて

3

を参照してください。これにより、名前に関連付けられた異なる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で廃止され、それはIPv6アドレスをサポートしていないとして(とPython socket.gethostbynameそれに実装されている)、そしてgetaddrinfoが推奨代替品です。

関連する問題