Linuxでwhoisコマンドを使用する方法

  • whoisシステムには、ドメインの所有権と所有者自身に関する情報を提供するレコードが含まれています。インターネット割当番号局(ICANN)はドメイン名の登録と所有権を規制していますが、レコードはレジストリと呼ばれる異なる企業によって保持されています。
  • whoisレコードには、登録者(所有者)とレジストラ(ドメイン名を登録した組織)の連絡先情報、登録日、最終更新日、および有効期限が含まれます。
  • Linuxのwhoisコマンドを使用すると、グラフィカルユーザーインターフェースのないシステムやシェルスクリプトに便利なコマンドラインから直接検索を実行できます。このコマンドは、提供された特定のコマンドを使用して、Ubuntu、Fedora、およびManjaroにインストールできます。

whois検索では、インターネットドメインを誰が所有しているかについての多くの情報がわかります。Linuxでは、コマンドラインからwhois検索を実行できます。その方法を説明します。

whoisシステム

whoisシステムは、ドメインの所有権と所有者の両方の詳細を含むレコードの一覧です。インターネット割当番号局(ICANN)はドメイン名の登録と所有権を規制していますが、レコードの一覧はレジストリと呼ばれる多くの企業によって保持されています。

誰でもレコードの一覧を照会できます。照会すると、レジストリの1つがリクエストを処理し、適切なwhoisレコードから詳細を送信します。

先に進む前に、次の用語に慣れていることが重要です。

  • レジストリ:ドメイン名のセットを含むリストを管理する企業(多数あります)。
  • 登録者:ドメインの法的所有者。この人物に登録されています。
  • レジストラ:登録者は、レジストラを使用して登録を行います。

whoisレコードには、ドメイン名を登録した個人、企業、またはその他のエンティティに関連するすべての連絡先情報が含まれています。一部の登録には他の登録よりも多くの情報が含まれており、一部のレジストリは異なる量の情報を返します。

一般的なwhoisレコードには、次の情報が含まれます。

  • 登録者の名前と連絡先情報:ドメインの所有者。
  • レジストラの名前と連絡先情報:ドメイン名を登録した組織。
  • 登録日。
  • 情報の最終更新日。
  • 有効期限。

Webでwhoisリクエストを行うことができますが、Linuxのwhoisコマンドを使用すると、コマンドラインから直接検索を実行できます。これは、グラフィカルユーザーインターフェースのないコンピュータから検索を実行する場合、またはシェルスクリプトから検索を実行する場合に便利です。

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レジストリからの応答はサマリーで始まり、追加情報を含めて繰り返されます。商標の声明と利用規約を削除した例を以下に示します。

<code>Domain Name: CNN.COM
レジストリドメインID: 3269879_DOMAIN_COM-VRSN
レジストラWHOISサーバー: whois.corporatedomains.com
レジストラURL: http://www.cscglobal.com/global/web/csc/digital-brand-services.html
更新日: 2018-04-10T16:43:38Z
作成日: 1993-09-22T04:00:00Z
レジストリエキス派の日付: 2026-09-21T04:00:00Z
レジストラ: CSC Corporate Domains, Inc.
レジストラIANA ID: 299
レジストラ不正利用連絡先メール: [email protected]
レジストラ不正利用連絡先電話番号: 8887802723
ドメインステータス: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
ドメインステータス: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited
ドメインステータス: serverTransferProhibited https://icann.org/epp#serverTransferProhibited
ドメインステータス: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited
ネームサーバー: NS-1086.AWSDNS-07.ORG
ネームサーバー: NS-1630.AWSDNS-11.CO.UK
ネームサーバー: NS-47.AWSDNS-05.COM
ネームサーバー: NS-576.AWSDNS-08.NET
DNSSEC: 未署名

これはかなり分かりやすいものです。連絡先、登録日など、レジストラとレジストリに関するさまざまな詳細がわかります。リストには見慣れないエントリがいくつかあります。

インターネット割り当て番号局(IANA)は、トップレベルドメインネームシステムゾーン、IPプロトコルアドレスシステム、およびレジストリのリストなどを取りまとめ、調整します。このレジストリは299番で、リストには「IANA ID: 299」として示されています。

「ドメインステータス」の行にはドメインの状態が表示され、同時に複数の状態になる場合があります。状態は拡張プロビジョニングプロトコルで定義されています。これらのいくつかはめったに見られず、他のものは法的紛争などの特定の状況に限定されています。

この登録には次の状態が添付されています。

  • clientTransferProhibited:ドメインのレジストリは、ドメインを現在のレジストラから別のレジストラに転送するリクエストを拒否します。
  • serverDeleteProhibited:ドメインは削除できません。
  • serverTransferProhibited:ドメインは別のレジストラに転送できません。
  • serverUpdateProhibited:ドメインを更新できません。

最後の3つは通常、登録者のリクエストで有効になっているか、法的紛争が発生している場合です。この場合、CNNはおそらく会社のドメインを「ロックダウン」するためにこれらを強制することを要求したのでしょう。

「!DNSSEC」は、DNSネームリゾルバがDNSゾーンから受信したデータが有効で改ざんされていないことを暗号的にチェックできるようにするスキームであるドメインネームシステムセキュリティ拡張を意味します。

応答の長い部分は以下に示します。

<code>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]
ネームサーバー: ns-576.awsdns-08.net
ネームサーバー: ns-1086.awsdns-07.org
ネームサーバー: ns-47.awsdns-05.com
ネームサーバー: ns-1630.awsdns-11.co.uk
DNSSEC: 未署名

これにより、概要とほぼ同じ情報が得られ、管理目的と技術的目的で登録者とその連絡先に関する追加のセクションが得られます。

登録者名は「ドメイン名マネージャー」とされています。場合によっては、有料で、企業はレジストラが代わりにドメインを登録できるようにします。レジストラがこの目的で管理する一般的な名前で。これは、ここで発生しているようです。ただし、登録者の住所が「1 CCN Center」であるため、登録者が誰であるかは明らかです。

IPアドレスを使用したwhoisの使用

IPアドレスでwhoisを使用することは、ドメイン名で使用する場合と同じくらい簡単です。whoisの後にIPアドレスを指定するだけです。次のようにします。

whois 205.251.242.103

これはwhoisによって返される出力です。

<code>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アドレスを所有する組織に関する情報が含まれています(この場合、Amazonが所有する多数のIPアドレスのうちの1つです)。レジストリによってAmazon.com、Inc.を内部的に識別するために使用される識別子もいくつか示されています。

2番目のセクションには、登録者であるAmazon.com、Inc.の住所と名前が含まれています。「Ref:」フィールドのWebアドレスには、この情報がJavaScriptオブジェクト表記(JSON)形式で含まれています。

他のセクションには、不正利用、ネットワーク運用、トラフィックルーティングなどの問題を報告できるようにする連絡先情報が含まれています。

スクリプトでwhoisを使用する

スクリプトでwhoisを使用するには、有効期限を確認する必要があるドメインのセットがあるとします。小さなシェルスクリプトでこれを実現できます。

エディタにこれを入力し、「get-expiry.sh」として保存します。

<code>#!/bin/bash

DOMAIN_LIST="howtogeek.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

各ドメインの有効期限は、grepを使用して「Expiration」という文字列を含む行を検索し、awkを使用してその行の5番目のアイテムを印刷することで、whoisからの応答から抽出されます。

利便性と自動化

はい、オンラインでwhois検索を行うこともできます。ただし、whoisコマンドをターミナルウィンドウとスクリプトで使用できるようになると、利便性と柔軟性が向上し、ワークロードの一部を自動化できるようになります。