За допомогою запиту 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 у терміналі та можливість використовувати її у скриптах надає зручності, гнучкості та дозволяє автоматизувати частину вашої роботи.