Python поддерживает преобразование имени хоста или доменного имени в IP-адрес без использования внешней программы. Эта возможность обеспечивается функцией gethostbyname из модуля socket.
Функция gethostbyname выводит один IP-адрес для заданного домена. Если хост или домен имеет несколько IP-адресов, вы можете использовать функцию gethostbyname_ex(). gethostbyname_ex() возвращает список IP-адресов в виде массива.
Вы можете использовать gethostbyname и gethostbyname_ex() для преобразования имени хоста в IP-адрес в Python с помощью интерактивной оболочки или внутри сценария.
Шаги по получению IP-адреса из имени хоста или домена в Python
Запустите вашу любимую оболочку Python.
1 | python3 |
1 | import socket |
Получите IP из имени хоста, вызвав функцию socket.gethostbyname с именем хоста в качестве параметра.
1 | socket.gethostbyname('www.google.com') |
Имя хоста в данном контексте означает полное доменное имя или FQDN.
Используйте gethostbyname_ex(), если у домена несколько IP-адресов.
Создайте сценарий Python, который принимает в качестве параметра имя хоста и выводит IP-адрес, как показано ниже.
1 | nano hostname-to-ip.py |
со следующим текстом:
1 2 3 4 5 6 7 8 9 | #!/usr/bin/env python3 import socket import sys hostname = sys.argv[1] ip = socket.gethostbyname(hostname) print('Hostname: ', hostname, '\n' 'IP: ', ip) |
Запустите скрипт из командной строки с именем хоста в качестве параметра для проверки.
1 | python3 hostname-to-ip.py 'www.google.com' |