Mam ciąg reprezentujący nazwę domeny. Jak mogę uzyskać odpowiedni adres IP za pomocą Pythona 3.x? Coś takiego:Jak uzyskać adres IP witryny za pomocą języka Python 3.x?
>>> get_ip('http://www.stackoverflow.com')
'64.34.119.12'
Mam ciąg reprezentujący nazwę domeny. Jak mogę uzyskać odpowiedni adres IP za pomocą Pythona 3.x? Coś takiego:Jak uzyskać adres IP witryny za pomocą języka Python 3.x?
>>> get_ip('http://www.stackoverflow.com')
'64.34.119.12'
>>> 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'])
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'
zauważyć, że:
Jeśli są one problematyczne, należy użyć metody socket.getaddrinfo().
Najprostszym sposobem jest użycie socket.gethostbyname()
. Nie obsługuje to jednak protokołu IPv6 i jest oparte na wycofanym wywołaniu C gethostbanme()
. Jeśli zależy Ci na tych problemach, możesz zamiast tego użyć bardziej uniwersalnego socket.getaddrinfo()
.
możliwy duplikat [Jak rozwiązać DNS w Pythonie?] (Http://stackoverflow.com/questions/3837744/how-to-resolve-dns-in-python) –