whoisエラー対処 | No whois server is known for this kind of object.

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

Internet Assigned Numbers Authority - Wikipedia

The s Command - gnu.org

sed コマンド | コマンドの使い方(Linux) | hydroculのメモ