2011-01-07 4 views

Antwort

3

Sie socket.getaddrinfo verwenden können. Dadurch erhalten Sie die mit dem Namen verknüpfte IP-Adresse und können auch die IPv6-Adresse angeben.

Aus der Dokumentation:

>>> 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))] 

Hinweis: gethostbyname ist in C veraltet (und Python socket.gethostbyname wird damit umgesetzt), da es nicht IPv6-Adressen unterstützt, und getaddrinfo ist der empfohlene Ersatz.