運用時に多用するdigコマンド。オプション入力が面倒なので、スクリプトをChatGPTに書いてもらいました。
スクリプトの動き
- ドメイン名をプロンプトで入力させる。
- どのレコードを問い合わせるのかをプロンプトで表示。
- 2の結果に従い、結果を返す。
スクリプトの内容
- dns.sh
#!/bin/bash
# ドメイン名の入力を求める
read -p "ドメイン名を入力してください: " query
# 入力が未設定の場合の処理
if [ -z "$query" ]; then
echo "エラー: ドメイン名が設定されていません。"
else
# Aレコードの問い合わせ
a_record=$(dig +short A $query)
if [ -z "$a_record" ]; then
a_record="未設定です"
fi
# TXTレコードの問い合わせ
txt_record=$(dig +short TXT $query)
if [ -z "$txt_record" ]; then
txt_record="未設定です"
fi
# MXレコードの問い合わせ
mx_record=$(dig +short MX $query)
if [ -z "$mx_record" ]; then
mx_record="未設定です"
fi
# レコードの問い合わせの種類を選択するプロンプトを表示
echo "問い合わせるレコードの種類を選んでください:"
echo "1. Aレコード"
echo "2. TXTレコード"
echo "3. MXレコード"
echo "4. A / TXT / MXレコード"
# レコードの種類をユーザーに選択させる
read -p "選択してください (1, 2, 3, または 4): " record_type
# ユーザーの選択に応じて問い合わせ結果を表示
case $record_type in
1)
# Aレコードの問い合わせ結果を表示
echo "Aレコード: $a_record"
;;
2)
# TXTレコードの問い合わせ結果を表示
echo "TXTレコード: $txt_record"
;;
3)
# MXレコードの問い合わせ結果を表示
echo "MXレコード: $mx_record"
;;
4)
# A / TXT / MXレコードを表示
echo "Aレコード: $a_record"
echo "TXTレコード: $txt_record"
echo "MXレコード: $mx_record"
;;
*)
# 無効な選択が入力された場合のエラーメッセージ
echo "無効な選択です。1, 2, 3, または 4 を入力してください。"
;;
esac
fi
入力後、
chmod +x dns.sh
で実行権を付与。
実行例
./dns.sh
ドメイン名を入力してください: google.co.jp
問い合わせるレコードの種類を選んでください:
1. Aレコード
2. TXTレコード
3. MXレコード
4. A / TXT / MXレコード
選択してください (1, 2, 3, または 4): 4
Aレコード: 142.250.199.99
TXTレコード: "v=spf1 -all"
MXレコード: 0 smtp.google.com.
今後足したい機能
- 問い合わせ先のDNSサーバの変数指定
- レコードを増やす
- 空エンター時の挙動
など、伸ばす余地はあります。