もう一人のY君

主にiPhoneのショートカットアプリのレシピやTipsなどを書いています. たまに数学の記事も書きます.

もう一人のY君 MENU  MENU

【iPhoneショートカット】ドメイン情報を調べるレシピ【DNS】

 

 トラブル中に作ったものです.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 

 

スポンサーリンク

 


 

 

ドメイン情報

 先日当ブログのサーバーを引っ越ししたのですが、いかんせんそういうことに無知な自分にはサポートの解説すら難解で、結果的に4日間も接続できない状況となってしまいました.

 

 その過程でドメインがどのサーバーを指しているかを確認するためにコマンドプロンプトのnslookを使うのが定石のひとつですが、他にもdns.googleを使う手段もあります.

 これを使えばiPhoneショートカットを使ってスマホやタブレットからサクッと調べることができます.

 

 

 

レシピ

 今回は複数ドメインの結果を一括で表示できるようレシピを組んでみます.

 一度そう作っておけば1個のときでも使えます.

 「リスト」アクションに、調べたいドメインを入れておきます.

 

 

 「各項目を繰り返す」でリストにあるドメインひとつひとつを処理します.

 

 今回使うdns.googleの場合、

 

https://dns.google/resolve?name=ドメイン名&type=A

 

となります、これを「URLの内容を取得」で出力します.

 ちなみに最後の&type=AはDNSのAレコードを取得するという意味ですが、削除した場合type=Aとして扱うためAレコードでよい場合は書かなくても大丈夫です.

 他のレコードがいい場合は各々に書き換え、その後の処理もそれに合わせて変更します.

 

 結果はjsonになっているので念の為「入力から辞書を取得」で辞書にしておき、わかりやすく変数で置いておきます.

 

    {
	"Status": 0,
	"TC": false,
	"RD": true,
	"RA": true,
	"AD": false,
	"CD": false,
	"Question": [
		{
			"name": "thetheorier.com",
			"type": 1
		}
	],
	"Answer": [
		{
			"name": "thetheorier.com",
			"type": 1,
			"TTL": 3600,
			"data": "210.224.185.101"
		}
	]
}

 ちなみに「URLの内容を取得」の結果は例えばこんな感じになっています(読みやすいようここでは整形してあります).

 今回はこの中からStatusとAnswerの内容を使うことにします.

 

 

 ここからは「URLの内容を取得」で取り出したjsonから必要なデータを取り出します.
 Statusキーについてはその値によって状況が異なるので、値に応じた情報を「辞書」アクションで用意し、Statusの値に適合するメッセージを取り出します.

 

 

 "Answer"キーの中身は単純に取り出すだけになります.

 「テキスト」アクションでいい感じに並べていきます.

 複数ドメインがあるのを見越して、最後に区切りになるものを入れておきます.

 これを「変数に追加」で適当な名前の変数にリストし、繰り返しが終わった最後に出力します.

 

 

 結果は画像のようになります.

 

 リッチテキストを使うのもありですね.

 

cloudflareを使う場合

 dns.googleのようなサービスとして更に有名なのがcloudflareです.

 やり方はdns.googleとほぼ同じなんですが、そのまま「URLの内容を取得」で出力した結果はファイル形式になっており、データを取り出すことができません.

 

 

 cloudflareを使う場合は画像のようになります.

 

 URL:https://cloudflare-dns.com/dns-query?name=ドメイン名

 ヘッダ(1つ)

   キー:Accept

   値:application/dns-json

 

 加えてこの結果を「名前を設定」アクションで適当にa.txtとします.

 これでテキストベースのjsonとして取り出すことができます.

 

 

他のレコードの場合

 場合によってはAレコードより情報量の多いCNAMEがいいこともあります.

 そのときはURLのtype=Aの部分をtype=CNAMEに変更し、データの取り出しもないように応じて変更する必要があります.

 上でcloudflareの紹介をしたURLにはtypeパラメータを省略しているためtype=Aということです.

 

 

 実際のところレシピを作った頃にはほぼ解決してたのですが、今後も役に立ちそうです.