次世代WHOIS代替CLIツール「quien」の魅力

次世代WHOIS代替CLIツール「quien」の魅力

黒い画面に whois example.com と打ち込み、スクロールして流れていくテキストの海から、RegistrarやName Serverの行を目を皿のようにして探す。インフラエンジニアなら誰もが経験するこの光景だが、ふと「いつまでこの古典的な儀式を続けるのだろう」と思うことはないだろうか。

ドメインやIPアドレスのトラブルシューティングは、私たちが業界に入った15年前から何も変わっていないように見えて、実はその周辺環境が劇的に複雑化している。ドメインの所有者を特定しただけでは調査は終わらない。DNSのレコードは正しく引けているか。SPFやDMARCといったメールセキュリティの構成に不備はないか。SSL/TLS証明書のチェーンは適切か。結局のところ、私たちは whois を叩いた後、休む間もなく digopensslcurl といったコマンドを次々と駆使し、散らばった情報を脳内でつなぎ合わせているのだ。

「調べる」体験を再定義するTUIアプローチ

Go言語で開発されたCLIツール「quien」(スペイン語で「誰」を意味する)は、こうした現代の煩雑な調査フローを一つの画面に統合する。単なるWHOISコマンドのラッパーではなく、ドメインやネットワーク調査のハブとして設計されているのが最大の特徴だ。

ターミナル上で quien example.com と実行すると、モダンでインタラクティブなTUI(テキストユーザーインターフェース)が立ち上がる。画面上部にはタブが用意されており、キーボード操作一つで「WHOIS」「DNS」「Mail」「SSL/TLS」「HTTP Headers」、さらにはHTMLからパースしたWordPressプラグインやJSフレームワークといった「Tech Stack」の情報までシームレスに切り替えて確認できる。

比較項目 従来の whois コマンド quien
データソース WHOIS (Port 43) RDAP優先 + WHOISフォールバック
インターフェース 単一のプレーンテキスト出力 タブ切り替え型TUI
取得できる情報 ドメイン・IPの登録情報のみ DNS, Mail(SPF/DMARC等), TLS, Tech Stack
機械可読性 正規表現などでの独自パースが必要 ネイティブでJSON出力に対応

IPアドレスを調査する際のネットワークコンテキストの深掘りも素晴らしい。RDAPを通じてASN(自律システム番号)を発見し、もしデータがなければBGPルーティング情報にフォールバックする。さらにPeeringDBと連携して、対象ネットワークのトラフィックプロファイルやピアリングポリシーまで引っ張ってくる。ネットワークエンジニアが背後でやっている「泥臭い確認作業」を、このツールは一瞬で終わらせてくれる。

モダンなバックエンドとAI時代への適応

私がいまこのツールに注目する理由は、派手なTUIだけではない。裏側の通信プロトコルとして、構造化データを提供する「RDAP(Registration Data Access Protocol)」を第一に採用し、必要に応じてレガシーなWHOISへフォールバックする堅実な設計を持っている点だ。IANAからの自動ディスカバリや、エクスポネンシャルバックオフによる自動リトライなど、ネットワークの不確実性を吸収する工夫が随所にみられる。

さらに、現代のツールキットとして欠かせないのが「機械可読性」への配慮である。

# TUIモードでインタラクティブに調査
quien example.com

# 運用スクリプトやCI向けに特定項目をJSON出力
quien --json mail example.com

サブコマンドと --json フラグを組み合わせることで、シェルスクリプトへの組み込みが容易になる。特筆すべきは、npx skills add retlehs/quien というコマンドで、AIエージェントのスキル(拡張機能)としてquienをインポートできる点だ。「人間のための快適なUI」を提供しつつ、「LLMや自動化パイプラインのためのAPI」としても機能する。この両立こそが、次世代のCLIツールに求められる絶対条件になりつつある。

シェルの設定ファイルに alias whois=quien と書き込んだ瞬間から、古き良きテキストの海で溺れる日々は過去のものになるはずだ。

参考リポジトリ: retlehs/quien

Photo by Denny Müller on Unsplash

コメントする