10
votes

Comment obtenir l'adresse IP d'un site Web à l'aide de Python 3.x?

J'ai une chaîne représentant un nom de domaine. Comment puis-je obtenir l'adresse IP correspondante à l'aide de Python 3.x? Quelque chose comme ceci: xxx


1 commentaires

3 Réponses :


11
votes
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'
Note that:
gethostbyname() doesn't work with IPv6.
gethostbyname() uses the C call gethostbanme(), which is deprecated.
If these are problematic, use socket.getaddrinfo() instead.

0 commentaires

7
votes

Le moyen le plus simple consiste à utiliser socket.gethostbyName () . Cela ne prend pas en charge IPv6, cependant, et est basé sur l'appel de C gethostbanme () . Si vous vous souciez de ces problèmes, vous pouvez utiliser plus polyversatile socket.getaddrinfo () à la place.


0 commentaires

10
votes
>>> 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'])

0 commentaires