How do I get a website's IP address using Python 3.x?
11,870
Solution 1
>>> 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'])
Solution 2
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.
Solution 3
The easiest way is to use socket.gethostbyname()
. This does not support IPv6, though, and is based on the deprecated C call gethostbanme()
. If you care about these problems, you can use the more versatile socket.getaddrinfo()
instead.
Related videos on Youtube
Author by
snakile
Updated on June 04, 2022Comments
-
snakile almost 2 years
I have a string representing a domain name. How can I get the corresponding IP address using Python 3.x? Something like this:
>>> get_ip('http://www.stackoverflow.com') '64.34.119.12'
-
Dan Grossman about 13 yearspossible duplicate of How to resolve DNS in Python?
-