Мне нужно получить IP-адрес веб-сайта, например, https://www.facebook.com/'
Этот код возвращает IP-адрес:
ip_address = socket.gethostbyname('www.facebook.com') print('ip_address = ', ip_address) # prints 185.60.216.35
Но этот код:
ip_address = socket.gethostbyname('https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110')
выдает исключение:
socket.gaierror: [Errno -2] Name or service not known
Есть ли в python способ получить IP-адрес по этой ссылке 'https://www.facebook.com/' без загрузки www.facebook.com?
Вы можете использовать urllib.parse.urlsplit , чтобы получить имя хоста из домена, а затем получить IP-адрес.
urlsplit возвращает именованный кортеж, его атрибут netloc является именем хоста.
urlsplit
netloc
>>> import socket >>> from urllib import parse >>> url = 'https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110' >>> split_url = parse.urlsplit(url) >>> ip_address = socket.gethostbyname(split_url.netloc) >>> print(ip_address) 157.240.1.35