whoisコマンド実行時に以下のエラーが出たときの対処法です。
No whois server is known for this kind of object.
はじめに
おはよう。@bioerrorlogです。
当ブログのドメインbioerrorlog.work
に対してwhoisコマンドを実行したところ、以下のエラーを吐かれてしまいました。
$ whois bioerrorlog.work
No whois server is known for this kind of object.
該当するwhoisサーバーが見つからない、怒られています。
.work
ドメインは比較的新しいため、このようなエラーが吐かれているのでしょう。
このエラーに対する対処法を書きます。
作業環境
- OS: Amazon Linux 2
- whoisバージョン: Version 5.1.1.
エラー対処
接続先ホストを特定する
解決策としては、接続先として然るべきホストを-h
オプションに指定してwhoisコマンドを実行することが挙げられます。
whois -h [接続先whoisホスト] bioerrorlog.work
そのためにまず、以下のコマンドで接続先ホストを調べます。
whois -h whois.iana.org .work | egrep -e '^whois:' | sed -e 's/[[:space:]][[:space:]]*/ /g' | cut -d " " -f 2
1行目の.work
部分は、調べたいドメインに合わせて変更してください。
この例では、.work
ドメインに対するwhoisサーバーが以下のように返されます。
whois.nic.work
上記コマンドで行っている処理をひとつひとつ見ていきます。
- 1行目
whois -h whois.iana.org .work
最初は、調べたいドメイン.work
を、IANAに対して直接whoisします。
これにより、.work
ドメインのwhoisサーバー名を含む情報が以下のように得られます。
$ whois -h whois.iana.org .work % IANA WHOIS server % for more information on IANA, visit http://www.iana.org % This query returned 1 object domain: WORK organisation: Minds + Machines Group Limited address: Craigmuir Chambers, Road Town Tortola VG 1110 address: Virgin Islands, British contact: administrative name: Admin Contact organisation: Minds + Machines Ltd address: 32 Nassau St, Dublin 2 address: Ireland phone: +1-877-734-4783 e-mail: ops@mmx.co contact: technical name: TLD Registry Services Technical organisation: Nominet address: Minerva House, address: Edmund Halley Road, address: Oxford Science Park, address: Oxford, address: OX4 4DQ address: United Kingdom phone: +44.1865332211 e-mail: registrytechnical@nominet.uk nserver: DNS1.NIC.WORK 213.248.217.35 2a01:618:401:0:0:0:0:35 nserver: DNS2.NIC.WORK 103.49.81.35 2401:fd80:401:0:0:0:0:35 nserver: DNS3.NIC.WORK 213.248.221.35 2a01:618:405:0:0:0:0:35 nserver: DNS4.NIC.WORK 2401:fd80:405:0:0:0:0:35 43.230.49.35 nserver: DNSA.NIC.WORK 156.154.100.3 2001:502:ad09:0:0:0:0:3 nserver: DNSB.NIC.WORK 156.154.101.3 nserver: DNSC.NIC.WORK 156.154.102.3 nserver: DNSD.NIC.WORK 156.154.103.3 ds-rdata: 7331 8 2 F6EBBE59BD6CF2D7D8F6AD1A31F38E84BE3C4613432E59703C4D90BC8D47E1C1 whois: whois.nic.work status: ACTIVE remarks: Registration information: http://mm-registry.com/ created: 2014-08-18 changed: 2019-08-22 source: IANA
- 2行目
egrep -e '^whois:'
こちらでは、1行目の実行結果から"whois:"で始まる行を抽出しています。 ここまでで、以下の結果が得られます。
$ whois -h whois.iana.org .work | > egrep -e '^whois:' whois: whois.nic.work
- 3行目
sed -e 's/[[:space:]][[:space:]]*/ /g'
次は、こちらのsedコマンドによって、連続したスペースを排除しています。
-e
オプションに指定されたパラメータ:s/[regexp]/[replacement]/g
によって、[regexp]
に一致する部分が[replacement]
で全て(g
フラッグ)置換されます。
ここまでで、以下の結果が得られます。
$ whois -h whois.iana.org .work | > egrep -e '^whois:' | > sed -e 's/[[:space:]][[:space:]]*/ /g' whois: whois.nic.work
- 4行目
cut -d " " -f 2
最後はcutコマンドで、必要な部分を抜粋します。
-d
オプションで区切り文字にスペースを指定し、
-f
オプションでその2項目目を抽出しています。
以上により、以下のwhoisサーバー名が得られます。
$ whois -h whois.iana.org .work | > egrep -e '^whois:' | > sed -e 's/[[:space:]][[:space:]]*/ /g' | > cut -d " " -f 2 whois.nic.work
ホストを指定してwhoisコマンドを実行する
ここまでくればあとは簡単です。
前述のコマンドで得られたwhoisサーバーをホスト-h
に指定して、目的のドメインbioerrorlog.work
をwhoisします。
whois -h whois.nic.work bioerrorlog.work
whois.nic.work
部分は前章の手順で得られたwhoisサーバー名を、
bioerrorlog.work
はwhois対象のドメインに置き換えてください。
これで、エラーなくwhois情報を取得できました。
おわりに
今回は、whoisコマンドが実行できない時の対処法を書きました。
最近の新しいドメインを調べる際には、同じようなエラーに遭遇するのではないかと思います。
そのような方の参考になれば幸いです。
[関連記事] ある文字列を含むファイルをgrepコマンドで検索する | Linux
参考
linux - How to whois new TLDs? - Super User