Як використовувати команду whois в Linux

За допомогою запиту Whois можна отримати детальну інформацію про власника інтернет-домену. В операційній системі Linux, цю операцію можна виконати безпосередньо з командного рядка. Розглянемо, як це зробити.

Принцип роботи системи Whois

Система Whois представляє собою базу даних, що містить інформацію про реєстрацію доменних імен та їх власників. Міжнародна корпорація з присвоєння імен та номерів (ICANN) відповідає за регулювання реєстрації доменів та прав власності, однак самі бази даних зберігаються різними компаніями, які називаються реєстрами.

Кожен має право зробити запит до цієї бази даних. При цьому один з реєстрів обробляє запит та повертає необхідні дані з відповідного запису Whois.

Перед тим, як продовжити, розглянемо кілька важливих термінів:

Реєстр: Компанія, що веде базу даних доменних імен (існує їх велика кількість).
Реєстрант: Законний власник домену, на якого зареєстровано доменне ім’я.
Реєстратор: Компанія, через яку реєстрант здійснив реєстрацію домену.

Запис Whois містить всю контактну інформацію, пов’язану з особою, організацією або іншим суб’єктом, що зареєстрував доменне ім’я. Обсяг інформації може відрізнятися в залежності від реєстрації та реєстру.

Типовий запис Whois включає в себе наступні дані:

Ім’я та контактні дані реєстранта: Власник домену.
Ім’я та контактні дані реєстратора: Організація, що здійснила реєстрацію доменного імені.
Дата реєстрації.
Дата останнього оновлення інформації.
Дата закінчення терміну дії.

Запити Whois можна виконувати через веб-інтерфейс, але за допомогою команди whois в Linux, можна здійснювати пошук безпосередньо з командного рядка. Це зручно, якщо потрібно виконати запит з комп’ютера без графічного інтерфейсу, або для автоматизації за допомогою скриптів.

Інсталяція Whois

Команда whois зазвичай вже встановлена в Ubuntu 20.04. Якщо у вашій версії Ubuntu її немає, ви можете встановити її за допомогою наступної команди:

sudo apt-get install whois

Для Fedora скористайтеся наступною командою:

sudo dnf install whois

Для Manjaro введіть:

sudo pacman -Syu whois

Використання Whois з Доменним Іменем

Команду whois можна використовувати як з доменними іменами, так і з IP-адресами. Інформація, що повертається, дещо відрізняється для кожного з цих випадків.

Розглянемо приклад з доменним іменем:

whois cnn.com

Результат запиту Whois починається з короткого резюме, а потім виводиться детальніша інформація. Нижче наведено приклад відповіді, з якої вилучено повідомлення про торгові марки та умови використання:

Domain Name: CNN.COM
Registry Domain ID: 3269879_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.corporatedomains.com
Registrar URL: http://www.cscglobal.com/global/web/csc/digital-brand-services.html
Updated Date: 2018-04-10T16:43:38Z
Creation Date: 1993-09-22T04:00:00Z
Registry Expiry Date: 2026-09-21T04:00:00Z
Registrar: CSC Corporate Domains, Inc.
Registrar IANA ID: 299
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: 8887802723
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
Name Server: NS-1086.AWSDNS-07.ORG
Name Server: NS-1630.AWSDNS-11.CO.UK
Name Server: NS-47.AWSDNS-05.COM
Name Server: NS-576.AWSDNS-08.NET
DNSSEC: unsigned

З цієї відповіді зрозуміло, що ми отримали інформацію про реєстратора та реєстр, включаючи контактні дані, дати реєстрації та інші відомості. Також в списку є записи, які можуть бути невідомі.

Адміністрація адресного простору Інтернету (IANA) контролює та координує такі процеси, як зони системи доменних імен, протокол IP адресації, та список реєстрів. Цей реєстр має ідентифікаційний номер 299, який зазначений як “IANA ID: 299”.

Рядки “Статус домену” відображають поточний стан домену, який може мати кілька статусів одночасно. Статуси описані в Протоколі розширеного надання. Деякі з цих статусів трапляються рідко, а інші використовуються у спеціальних ситуаціях, наприклад, у юридичних спорах.

До даної реєстрації застосовуються наступні статуси:

clientTransferProhibited: Реєстр домену відхилить запити на перенесення домену від поточного реєстратора до іншого.
serverDeleteProhibited: Домен не може бути видалено.
serverTransferProhibited: Домен не може бути передано іншому реєстратору.
serverUpdateProhibited: Домен не може бути оновлено.

Останні три статуси зазвичай застосовуються на вимогу реєстранта, або під час судових спорів. У цьому випадку, CNN, ймовірно, самостійно запросило їх встановлення для “блокування” свого домену.

“DNSSEC” вказує на Розширення безпеки системи доменних імен, що дозволяє DNS-резолверам криптографічно підтверджувати дійсність даних, отриманих з DNS зони.

Повна відповідь запиту Whois виглядає наступним чином:

Domain Name: cnn.com
Registry Domain ID: 3269879_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.corporatedomains.com
Registrar URL: www.cscprotectsbrands.com
Updated Date: 2018-04-10T16:43:38Z
Creation Date: 1993-09-22T04:00:00Z
Registrar Registration Expiration Date: 2026-09-21T04:00:00Z
Registrar: CSC CORPORATE DOMAINS, INC.
Registrar IANA ID: 299
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.8887802723
Domain Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited
Domain Status: serverDeleteProhibited http://www.icann.org/epp#serverDeleteProhibited
Domain Status: serverTransferProhibited http://www.icann.org/epp#serverTransferProhibited
Domain Status: serverUpdateProhibited http://www.icann.org/epp#serverUpdateProhibited
Registry Registrant ID:
Registrant Name: Domain Name Manager
Registrant Organization: Turner Broadcasting System, Inc.
Registrant Street: One CNN Center
Registrant City: Atlanta
Registrant State/Province: GA
Registrant Postal Code: 30303
Registrant Country: US
Registrant Phone: +1.4048275000
Registrant Phone Ext:
Registrant Fax: +1.4048271995
Registrant Fax Ext:
Registrant Email: [email protected]
Registry Admin ID:
Admin Name: Domain Name Manager
Admin Organization: Turner Broadcasting System, Inc.
Admin Street: One CNN Center
Admin City: Atlanta
Admin State/Province: GA
Admin Postal Code: 30303
Admin Country: US
Admin Phone: +1.4048275000
Admin Phone Ext:
Admin Fax: +1.4048271995
Admin Fax Ext:
Admin Email: [email protected]
Registry Tech ID:
Tech Name: TBS Server Operations
Tech Organization: Turner Broadcasting System, Inc.
Tech Street: One CNN Center
Tech City: Atlanta
Tech State/Province: GA
Tech Postal Code: 30303
Tech Country: US
Tech Phone: +1.4048275000
Tech Phone Ext:
Tech Fax: +1.4048271593
Tech Fax Ext:
Tech Email: [email protected]
Name Server: ns-576.awsdns-08.net
Name Server: ns-1086.awsdns-07.org
Name Server: ns-47.awsdns-05.com
Name Server: ns-1630.awsdns-11.co.uk
DNSSEC: unsigned

Тут наведено більш детальну інформацію, включно з контактними даними реєстранта для адміністративних та технічних цілей.

Ім’я реєстранта вказано як “Менеджер доменних імен”. Іноді, за додаткову плату, компанії дозволяють реєстраторам реєструвати домени від їх імені, використовуючи загальне ім’я, яке реєстратор підтримує для цієї мети. Схоже, що в даному випадку це саме так. Проте, оскільки адреса реєстранта “1 CCN Center”, очевидно, хто є власником домену.

Використання Whois з IP-адресою

Використовувати команду whois з IP-адресою так само просто, як і з доменним іменем. Просто введіть IP-адресу після whois, наприклад:

whois 205.251.242.103

Ось результат, який повертає команда whois:

NetRange: 205.251.192.0 - 205.251.255.255
CIDR: 205.251.192.0/18
NetName: AMAZON-05
NetHandle: NET-205-251-192-0-1
Parent: NET205 (NET-205-0-0-0-0)
NetType: Direct Allocation
OriginAS: AS16509, AS39111, AS7224
Organization: Amazon.com, Inc. (AMAZON-4)
RegDate: 2010-08-27
Updated: 2015-09-24
Ref: https://rdap.arin.net/registry/ip/205.251.192.0

OrgName: Amazon.com, Inc.
OrgId: AMAZON-4
Address: 1918 8th Ave
City: SEATTLE
StateProv: WA
PostalCode: 98101-1244
Country: US
RegDate: 1995-01-23
Updated: 2020-03-31
Ref: https://rdap.arin.net/registry/entity/AMAZON-4

OrgAbuseHandle: AEA8-ARIN
OrgAbuseName: Amazon EC2 Abuse
OrgAbusePhone: +1-206-266-4064 
OrgAbuseEmail: [email protected]
OrgAbuseRef: https://rdap.arin.net/registry/entity/AEA8-ARIN

OrgNOCHandle: AANO1-ARIN
OrgNOCName: Amazon AWS Network Operations
OrgNOCPhone: +1-206-266-4064 
OrgNOCEmail: [email protected]
OrgNOCRef: https://rdap.arin.net/registry/entity/AANO1-ARIN

OrgRoutingHandle: ADR29-ARIN
OrgRoutingName: AWS Dogfish Routing
OrgRoutingPhone: +1-206-266-4064 
OrgRoutingEmail: [email protected]
OrgRoutingRef: https://rdap.arin.net/registry/entity/ADR29-ARIN

OrgRoutingHandle: IPROU3-ARIN
OrgRoutingName: IP Routing
OrgRoutingPhone: +1-206-266-4064 
OrgRoutingEmail: [email protected]
OrgRoutingRef: https://rdap.arin.net/registry/entity/IPROU3-ARIN

OrgTechHandle: ANO24-ARIN
OrgTechName: Amazon EC2 Network Operations
OrgTechPhone: +1-206-266-4064 
OrgTechEmail: [email protected]
OrgTechRef: https://rdap.arin.net/registry/entity/ANO24-ARIN

RTechHandle: ROLEA19-ARIN
RTechName: Role Account
RTechPhone: +1-206-266-4064 
RTechEmail: [email protected]
RTechRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

RAbuseHandle: ROLEA19-ARIN
RAbuseName: Role Account
RAbusePhone: +1-206-266-4064 
RAbuseEmail: [email protected]
RAbuseRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

RNOCHandle: ROLEA19-ARIN
RNOCName: Role Account
RNOCPhone: +1-206-266-4064 
RNOCEmail: [email protected]
RNOCRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

Перший розділ містить інформацію про організацію, якій належить IP-адреса, в даному випадку, це одна з багатьох IP-адрес, що належать Amazon. Також наведено ідентифікатори, що використовуються для внутрішньої ідентифікації Amazon.com, Inc. реєстром.

Другий розділ містить адресу та назву реєстранта, Amazon.com, Inc. Веб-адреса в полі “Ref:” містить цю інформацію в форматі JavaScript Object Notation (JSON).

Інші розділи містять контактну інформацію, що дозволяє повідомляти про проблеми, пов’язані з порушеннями, роботою мережі, маршрутизацією трафіку тощо.

Використання Whois у Скриптах

Для використання whois у скриптах, розглянемо приклад, де потрібно перевірити дати закінчення терміну дії для набору доменів. Це можна зробити за допомогою невеликого скрипта оболонки.

Створіть файл з назвою “get-expiry.sh” і вставте туди наступний код:

#!/bin/bash

DOMAIN_LIST="wdzwdz.com reviewgeek.com lifesavvy.com cloudsavvyit.com"

echo "Expiration dates:"

for domain in $DOMAIN_LIST
do
  echo -n "$domain :: "
  whois $domain | grep 'Expiration' | awk '{print $5}'
done

Надайте скрипту права на виконання за допомогою команди chmod, як показано нижче:

chmod +x get-expiry.sh

Запустіть скрипт, вказавши його ім’я:

./get-expiry.sh

Термін дії для кожного домену витягується з відповіді whois за допомогою команди grep, щоб знайти рядки, що містять текст “Expiration”, а потім за допомогою awk, щоб надрукувати п’ятий елемент з цього рядка.

Зручність та Автоматизація

Так, ви також можете виконувати пошук Whois онлайн. Однак, наявність команди whois у терміналі та можливість використовувати її у скриптах надає зручності, гнучкості та дозволяє автоматизувати частину вашої роботи.