Проверка доступности доменного имени с помощью bash и whois

Проверка доступности доменного имени с помощью bash и whois

Если вы когда-нибудь пытались придумать запоминающееся доменное имя, вы знаете, как раздражает постоянная проверка, доступно ли это имя.

К счастью, в Linux мы можем немного облегчить себе задачу, используя команду whois.

Также легко поместить эту функцию в скрипт Bash, который поможет автоматизировать проверку множества различных TLD (доменов верхнего уровня, таких как .com, .net, .org и т.д.).

Установка whois на основные дистрибутивы Linux

Чтобы проверить доступность домена из командной строки, вам необходимо иметь доступ к команде whois.

Используйте соответствующую команду ниже, чтобы установить утилиту whois с помощью менеджера пакетов вашей системы.

Чтобы установить whois на Ubuntu, Debian и Linux Mint:

$ sudo apt install whois

Для установки whois на CentOS, Fedora, AlmaLinux и Red Hat:

$ sudo dnf install whois

Чтобы установить whois на Arch Linux и Manjaro:

$ sudo pacman -S whois

После его установки вы сможете использовать приведенные ниже примеры команд или скрипт Bash для проверки доступности домена.

Как проверить доступность домена

Проверьте, зарегистрирован ли домен на кого-либо, просто используя команду whois и указав имя домена.

$ whois fsystem.00

Если домен занят, вы увидите результат.

В нем перечислены время регистрации домена, срок его действия, регистратор и другая информация о реестре.

В отличие от приведенного ниже вывода, где домен свободен и возвращается сообщение “No match found for”.

Приятно иметь возможность проверить доступность домена из командной строки Linux.

Однако это не намного удобнее, чем просто проверить доступность на сайте регистратора.

Проверка доступности домена с помощью скрипта Bash

Начните с сохранения следующего сценария в пустом файле на вашем компьютере.

#!/bin/bash 

# Name: Check for domain name availability 
# linuxconfig.org 
# Please copy, share, redistribute and improve 

if [ "$#" == "0" ]; then 
echo "You need tu supply at least one argument!" 
exit 1
fi 

DOMAINS=( '.com' '.co.uk' '.net' '.info' '.mobi' \ 
'.org' '.tel' '.biz' '.tv' '.cc' '.eu' '.ru' \ 
'.in' '.it' '.sk' '.com.au' )

ELEMENTS=${#DOMAINS[@]} 

while (( "$#" )); do 

for (( i=0;i<$ELEMENTS;i++)); do 
whois $1${DOMAINS[${i}]} | egrep -q \ 
'^No match|^NOT FOUND|^Not fo|AVAILABLE|^No Data Fou|has not been regi|No entri' 
if [ $? -eq 0 ]; then 
echo "$1${DOMAINS[${i}]} : available" 
fi 
done 

shift 

done

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

$ chmod +x domaincheck.sh

Затем запустите скрипт и укажите ему доменное имя, которое вы хотите проверить.

$ whois example

Вывод выдает список TLD доступных для нашей поисковой строки.

Вы также можете указать более одного запроса, если хотите найти несколько имен веб-сайтов.

Вы можете адаптировать скрипт по мере необходимости, если хотите проверить дополнительные TLD или добавить больше сообщений типа “no match”.