Wenn ich einen FQDN wie www.google.com habe, woher bekomme ich die entsprechende IP-Adresse?Python: Wie bekomme ich die IP-Adresse von einem FQDN
3
A
Antwort
6
Der einfachste Weg, dies zu tun ist socket.gethostbyname()
.
0
Verwendung socket.gethostbyname (Hostname) sehen http://docs.python.org/library/socket.html#socket.gethostbyname
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.