Jak korzystać z polecenia whois w systemie Linux

Wykorzystanie usługi whois pozwala na uzyskanie wielu informacji o właścicielach domen internetowych. W systemie Linux zapytania whois można wykonywać bezpośrednio z terminala. Poniżej przedstawiamy szczegółowe instrukcje.

Czym jest system whois?

System whois to zbiór rekordów, który dostarcza szczegółowe dane dotyczące własności domen oraz ich właścicieli. Regulacje dotyczące rejestracji i własności nazw domen są nadzorowane przez Internet Corporation for Assigned Names and Numbers (ICANN), natomiast same rekordy są przechowywane przez różne firmy, zwane rejestrami.

Każdy może wystąpić z zapytaniem o te rekordy. Kiedy to zrobisz, jeden z rejestrów zrealizuje Twoje żądanie i przekaże szczegółowe dane z odpowiedniego rekordu whois.

Przed kontynuacją warto zapoznać się z poniższymi terminami:

Rejestr: organizacja zarządzająca listą nazw domen (istnieje wiele takich firm).
Abonent: osoba prawna, która jest zarejestrowana jako właściciel domeny.
Rejestrator: firma, która dokonuje rejestracji domeny w imieniu abonenta.

Rekord whois zawiera wszystkie dane kontaktowe związane z osobą lub firmą, która zarejestrowała daną nazwę domeny. Niektóre rejestracje oferują więcej informacji niż inne, a różni rejestrzy mogą udostępniać różne zakresy danych.

Typowy rekord whois może zawierać następujące elementy:

Nazwa i dane kontaktowe rejestrującego: właściciela domeny.
Nazwa i dane kontaktowe rejestratora: organizacji, która zarejestrowała daną domenę.
Data rejestracji.
Data ostatniej modyfikacji informacji.
Data wygaśnięcia.

Możesz przeprowadzać zapytania whois w sieci, ale korzystając z polecenia whois w systemie Linux, masz możliwość wykonania wyszukiwania bezpośrednio z wiersza poleceń. To przydatne, jeśli chcesz zrealizować zapytanie z komputera bez interfejsu graficznego lub w ramach skryptów powłoki.

Jak zainstalować whois?

W systemie Ubuntu 20.04 polecenie whois jest już zainstalowane. Jeśli chcesz zainstalować je w swojej wersji Ubuntu, użyj poniższego polecenia:

sudo apt-get install whois

Dla systemu Fedora zastosuj poniższe polecenie:

sudo dnf install whois

Aby zainstalować whois w Manjaro, wpisz:

sudo pacman -Syu whois

Jak korzystać z whois dla domeny?

Możesz używać polecenia whois zarówno z nazwami domen, jak i z adresami IP. Wyniki będą się różniły w zależności od tego, co podasz.

whois cnn.com

Odpowiedź z serwera whois zaczyna się od podsumowania, a następnie zawiera dodatkowe informacje. Poniżej przedstawiamy przykład z usuniętymi informacjami dotyczącymi znaków towarowych i warunków użytkowania:

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: domainabuse@cscglobal.com
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

Widzimy tu różne szczegóły dotyczące rejestratora oraz rejestru, w tym dane kontaktowe oraz daty rejestracji. Znajdują się tam także pozycje, które mogą być nieznane dla niektórych użytkowników.

IANA (Urząd ds. Numerów przydzielonych w Internecie) zarządza i koordynuje takie elementy, jak najwyższy poziom System nazw domen, czy adresację w Protokole IP oraz prowadzi listę rejestrów. Rejestr ten ma przypisany numer 299, co jest uwzględnione w informacji jako „IANA ID: 299”.

Linie „status domeny” informują o aktualnym stanie domeny, który może przybrać różne formy. Statusy są zdefiniowane w Extensible Provisioning Protocol. Niektóre z nich są rzadko spotykane, inne dotyczą specyficznych sytuacji, takich jak spory prawne.

W przypadku tej rejestracji wskazano następujące statusy:

clientTransferProhibited: Rejestr domeny odrzuca żądania przeniesienia domeny do innego rejestratora.
serverDeleteProhibited: domeny nie można usunąć.
serverTransferProhibited: domeny nie można przenieść do innego rejestratora.
serverUpdateProhibited: domeny nie można zaktualizować.

Ostatnie trzy statusy są zwykle wprowadzane na żądanie rejestrującego lub w przypadku sporu prawnego. W przypadku CNN najprawdopodobniej takie zabezpieczenia zostały wprowadzone, aby „zablokować” domenę.

„! DNSSEC” odnosi się do Rozszerzeń zabezpieczeń systemu nazw domen, które umożliwiają kryptograficzne potwierdzenie integralności danych z strefy DNS.

Poniżej przedstawiamy dłuższą część odpowiedzi:

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: domainabuse@cscglobal.com
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 Fax: +1.4048271995
Registrant Email: tmgroup@turner.com
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 Fax: +1.4048271995
Admin Email: tmgroup@turner.com
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 Fax: +1.4048271593
Tech Email: hostmaster@turner.com
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

To dostarcza nam praktycznie te same informacje, co podsumowanie, z dodatkowymi sekcjami dotyczącymi szczegółów rejestrującego oraz jego danych kontaktowych do celów administracyjnych i technicznych.

Nazwa rejestrującego to „Menedżer nazw domen”. Firmy czasami umożliwiają swojemu rejestratorowi rejestrację domeny w swoim imieniu pod ogólną nazwą, którą rejestrator utrzymuje. Możliwe, że tak jest w tym przypadku. Jednak ponieważ adres rejestrującego to „1 CNN Center”, to oczywiste, kto jest rejestrującym.

Jak korzystać z whois dla adresu IP?

Użycie whois dla adresu IP jest równie proste jak dla nazwy domeny. Wystarczy podać adres IP po poleceniu whois, na przykład:

whois 205.251.242.103

Oto wynik zapytania 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: abuse@amazonaws.com
OrgAbuseRef: https://rdap.arin.net/registry/entity/AEA8-ARIN

OrgNOCHandle: AANO1-ARIN
OrgNOCName: Amazon AWS Network Operations
OrgNOCPhone: +1-206-266-4064 
OrgNOCEmail: amzn-noc-contact@amazon.com
OrgNOCRef: https://rdap.arin.net/registry/entity/AANO1-ARIN

OrgRoutingHandle: ADR29-ARIN
OrgRoutingName: AWS Dogfish Routing
OrgRoutingPhone: +1-206-266-4064 
OrgRoutingEmail: aws-dogfish-routing-poc@amazon.com
OrgRoutingRef: https://rdap.arin.net/registry/entity/ADR29-ARIN

OrgRoutingHandle: IPROU3-ARIN
OrgRoutingName: IP Routing
OrgRoutingPhone: +1-206-266-4064 
OrgRoutingEmail: aws-routing-poc@amazon.com
OrgRoutingRef: https://rdap.arin.net/registry/entity/IPROU3-ARIN

OrgTechHandle: ANO24-ARIN
OrgTechName: Amazon EC2 Network Operations
OrgTechPhone: +1-206-266-4064 
OrgTechEmail: amzn-noc-contact@amazon.com
OrgTechRef: https://rdap.arin.net/registry/entity/ANO24-ARIN

RTechHandle: ROLEA19-ARIN
RTechName: Role Account
RTechPhone: +1-206-266-4064 
RTechEmail: ipmanagement@amazon.com
RTechRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

RAbuseHandle: ROLEA19-ARIN
RAbuseName: Role Account
RAbusePhone: +1-206-266-4064 
RAbuseEmail: ipmanagement@amazon.com
RAbuseRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

RNOCHandle: ROLEA19-ARIN
RNOCName: Role Account
RNOCPhone: +1-206-266-4064 
RNOCEmail: ipmanagement@amazon.com
RNOCRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

Pierwsza sekcja zawiera informacje na temat organizacji, która jest właścicielem danego adresu IP (w tym przypadku Amazon). Otrzymujemy również identyfikatory używane przez rejestr do wewnętrznej identyfikacji Amazon.com, Inc.

Druga sekcja zawiera dane adresowe i nazwę rejestrującego, czyli Amazon.com, Inc. Adres w polu „Ref:” prowadzi do danych w Notacji obiektu JavaScript (JSON).

Kolejne sekcje oferują dane kontaktowe, które umożliwiają zgłaszanie problemów związanych z nadużyciami, operacjami sieciowymi, routingiem i innymi kwestiami.

Wykorzystanie whois w skryptach

Aby wykorzystać whois w skrypcie, załóżmy, że mamy kilka domen, dla których chcemy sprawdzić daty wygaśnięcia. Możemy to osiągnąć za pomocą prostego skryptu powłoki.

Wprowadź poniższy kod w edytorze i zapisz jako „get-expiry.sh”:

#!/bin/bash

DOMAIN_LIST="newsblog.pl reviewgeek.com lifesavvy.com cloudsavvyit.com"

echo "Daty wygaśnięcia:"

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

Aby ustawić skrypt jako wykonywalny, użyj polecenia chmod:

chmod +x get-expiry.sh

Aby uruchomić skrypt, wywołaj go w terminalu:

./get-expiry.sh

Data wygaśnięcia każdej domeny jest wydobywana z odpowiedzi whois przy użyciu polecenia grep, które wyszukuje wiersze zawierające ciąg „Wygaśnięcie”, a następnie awk do drukowania piątej pozycji tej linii.

Zalety używania whois

Możesz również przeprowadzać wyszukiwania whois online, ale korzystanie z polecenia whois w terminalu oraz w skryptach zapewnia wygodę, elastyczność i umożliwia automatyzację wielu procesów.