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:
3 Réponses :
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.
Le moyen le plus simple consiste à utiliser socket.gethostbyName () Code>
. Cela ne prend pas en charge IPv6, cependant, et est basé sur l'appel de C gethostbanme () code>. Si vous vous souciez de ces problèmes, vous pouvez utiliser plus polyversatile
socket.getaddrinfo () code>
à la place. P>
>>> 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'])
Dupliqué possible de Comment résoudre DNS à Python?