はじめに
今回紹介するのは、普段行っている作業の一部を自動化・省力化する目的で作成したスクリプトです。
1日1分の削減ができれば1年で約6時間削減されるだけでなく、人為的ミスも減少できるメリットが得られます。また、作業に対して脳のリソースを使わなくて済むので、他へリソースを充てられるというメリットもあります。
ChatGPTを使えば短時間で効率化できる世の中になったので、積極的に自動化・省力化を行いましょう。
スクリプト
概要
実装は簡単で、dig
, whois
コマンドを使用するだけです。
-
dig
コマンドの応答のうち、Aレコードに記載のIPアドレスを取得 - 取得したIPアドレスで
whois
コマンドを実行する。応答から登録機関を取得し、表示する
実行結果
QiitaはAmazon上で動いているようです。
% ./whois_lookup.sh qiita.com
Organization for 54.168.45.175:
NetName: AMAZON
OrgName: Amazon Technologies Inc.
--------
Organization for 18.182.115.198:
NetName: AT-88-Z
OrgName: Amazon Technologies Inc.
--------
Organization for 35.75.52.124:
NetName: AT-88-Z
OrgName: Amazon Technologies Inc.
--------
実装の詳細
#!/bin/bash
# 第一引数($1)をドメイン名として使用
domain=$1
# 引数が指定されていない場合は、使用方法を表示して終了
if [ -z "$domain" ]; then
echo "Usage: $0 <domain>"
exit 1
fi
# digコマンドでドメインのIPアドレスを取得
ips=$(dig $domain | awk '/;; ANSWER SECTION:/{flag=1; next} /;; AUTHORITY SECTION:/{flag=0} flag' | awk '/IN\tA/{print $5}')
# 各IPアドレスに対してwhoisコマンドを実行し、組織情報を抽出
for ip in $ips; do
echo "Organization for $ip:"
whois $ip | grep -E 'OrgName:|Registrant Organization:|descr:|NetName:|netname:'
echo "--------"
done
さいごに
便利なコマンド紹介
今回作ったスクリプトの上位互換がありました。
コマンドとして整備されており、starも100近く付いているようです。