Как я могу получить IP-адрес, если у меня есть полный URL-адрес, используя функцию socket.gethostbyname? - PullRequest
0 голосов
/ 13 января 2019

Мне нужно получить 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?

1 Ответ

0 голосов
/ 13 января 2019

Вы можете использовать urllib.parse.urlsplit , чтобы получить имя хоста из домена, а затем получить IP-адрес.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...