Сообщить об ошибке.

Функция gethostbyname_ex() модуля socket в Python

Получает список IPv4-адресов, которые использует хост/домен

Синтаксис:

import socket

socket.gethostbyname_ex(hostname)

Параметры:

  • hostname - имя хоста/домена.

Возвращаемое значение:

Описание:

Функция gethostbyname_ex() модуля socket преобразует имя хоста/домена в формат адреса IPv4, расширенный интерфейс.

Функция socket.gethostbyname_ex() возвращает тройной кортеж (hostname, aliaslist, ipaddrlist), где

  • hostname - это имя основного хоста, отвечающее на данный ip_address,
  • aliaslist - это (возможно, пустой) список альтернативных имен хостов для того же адреса,
  • ipaddrlist - это список IPv4-адресов, которые использует интерфейс этого хоста/домена (часто, но не всегда, один адрес).

Функция не поддерживает разрешение имен IPv6, для поддержки двойного стека IPv4/v6 следует использовать функцию socket.getaddrinfo().

Вызывает событие аудита socket.gethostbyname с аргументом hostname.

Примеры получения списка IPv4-адресов хоста/домена.

>>> import socket
>>> socket.gethostbyname_ex('google.com')
# ('google.com', [], [
#     '64.233.165.113', 
#     '64.233.165.102', 
#     '64.233.165.139', 
#     '64.233.165.101', 
#     '64.233.165.138', 
#     '64.233.165.100'
#     ]
#  )
>>> socket.gethostbyname_ex('google.ru')
# ('google.ru', [], ['173.194.222.94'])
>>> socket.gethostbyname_ex('yandex.ru')
# ('yandex.ru', [], ['77.88.55.80', 
#                    '5.255.255.88', 
#                    '5.255.255.80', 
#                    '77.88.55.88'
#                    ]
#  )
>>> socket.gethostbyname_ex('dns.yandex')
# ('dns.yandex', [], ['77.88.8.8'])
>>> socket.gethostbyname_ex('dns.google')
# ('dns.google', [], ['8.8.8.8', '8.8.4.4'])