2026年6月16日

2026年6月16日

doggo コマンドで逆引きする方法|PTR の確認・複数リゾルバの比較・正引きとの一致チェック

doggo で IP アドレスからホスト名を調べる(逆引きする)には、doggo -x 192.0.2.10 のように -x を付けて実行します。この記事では、基本の逆引きに加えて、IPv6 の逆引き、複数のリゾルバや権威サーバーでの結果の比較、複数の IP をまとめて調べるスクリプト、メール送信で重視される「逆引きと正引きの一致」の確認までを順に説明します。

doggo の導入方法や正引きの問い合わせ全般は別の記事で扱っているため、ここでは逆引きに絞ります。オプションの名前や出力の列は版によって変わることがあるので、手元では doggo --help の表示を優先してください。この記事の内容は執筆時点(2026年10月現在)の版を基準にしています。

逆引きの仕組みを短く押さえる

逆引きは、IP アドレスを特別な形の名前に変換し、その名前の PTR レコードを問い合わせる仕組みです。IPv4 の 192.0.2.10 なら、数字の並びを逆にして in-addr.arpa を付けた 10.2.0.192.in-addr.arpa という名前になります。IPv6 は、アドレスを16進数1文字ずつに分けて逆に並べ、ip6.arpa を付けた長い名前になります。

ここで大事なのは、逆引きのレコードを管理しているのは、ドメインの持ち主ではなく、その IP アドレスを割り当てた側だという点です。VPS やクラウドなら事業者、自宅や事務所の回線ならプロバイダーが逆引きのゾーンを持っています。正引きの DNS をいくら直しても逆引きは変わらないので、結果がおかしいときに「誰に設定を頼むか」を判断するためにも、この仕組みを覚えておくと役立ちます。

doggo -x で逆引きする

もっとも基本の使い方です。

# IPv4 の逆引き
doggo -x 192.0.2.10

# IPv6 の逆引き
doggo -x 2001:db8::10

# 値(ホスト名)だけを表示する
doggo -x 192.0.2.10 --short

-x を付けると、doggo が逆引き用の名前を組み立てて PTR を問い合わせます。結果の表には、問い合わせた逆引き用の名前、種別(PTR)、TTL、値(ホスト名)が並びます。値の末尾にドットが付いているのは、完全な名前(FQDN)であることを示す表記で、異常ではありません。

-x を使わずに、逆引き用の名前を自分で書いて PTR を問い合わせることもできます。

doggo 10.2.0.192.in-addr.arpa PTR

自分で名前を書く方法は、次に説明する委任の確認で、どの階層の名前かを意識しながら調べたいときに使います。

結果が空や NXDOMAIN のときの読み方

逆引きでは、期待したホスト名が返らないことがよくあります。結果の状態ごとに、考えられる原因と次の確認を並べます。

  • NXDOMAIN(名前が存在しない):その IP に PTR が設定されていない可能性がもっとも高いです。VPS やクラウドの管理画面に逆引きの設定項目があるか確認し、無ければ事業者に設定を依頼します。
  • 答えが空(エラーではないが PTR が無い):逆引き用の名前は存在するが PTR が無い状態です。設定途中や、別の種別のレコードだけがある場合に起こります。
  • CNAME が返ってから PTR が返る:小さな IP の範囲を委任するときに使われる方式(RFC 2317 の方式)で、CNAME を経由して別の名前の PTR を参照しています。最終的に PTR が返っていれば問題ありません。
  • SERVFAIL やタイムアウト:逆引きゾーンの権威サーバーが応答していない、または DNSSEC の検証に失敗している可能性があります。別のリゾルバーでも同じかを比べます。
  • 事業者の汎用的なホスト名が返る:多くの VPS では、IP をもとにした汎用の名前が初期値として入っています。独自のホスト名にしたい場合は、管理画面で逆引きを変更します。

複数のリゾルバーと権威サーバーで比べる

逆引きを変更した直後は、リゾルバーによって古い答えのキャッシュが残っていることがあります。doggo は @ で問い合わせ先を複数並べられるので、答えを並べて比べられます。

# 2つの公開 DNS の答えを並べる
doggo -x 192.0.2.10 @1.1.1.1 @8.8.8.8

キャッシュではなく、管理元の今の設定を確かめたいときは、逆引きゾーンの権威サーバーに直接聞きます。権威サーバーは、逆引き用の名前の親にあたるゾーンの NS を問い合わせて調べます。

# 逆引きゾーンの NS を調べる(/24 の範囲の例)
doggo 2.0.192.in-addr.arpa NS

# 返ってきた権威サーバーに直接聞く(ns1.example.net は例)
doggo -x 192.0.2.10 @ns1.example.net

範囲が細かく委任されている場合は、/24 に当たる名前で NS が見つからず、さらに上の階層や CNAME の先をたどる必要があります。権威サーバーでは新しい値、公開 DNS では古い値なら、変更は済んでいてキャッシュの期限切れを待っている状態です。TTL の列の値が、あとどのくらいで切り替わるかの目安になります。

複数の IP をまとめて逆引きする

サーバーを複数持っている場合や、アクセスログに出てくる IP を一覧で確認したい場合は、短いスクリプトにすると楽です。

#!/bin/sh
# ips.txt に1行1つずつ IP アドレスを書いておく
while read -r ip; do
  name=$(doggo -x "$ip" --short @1.1.1.1 | head -n 1)
  printf '%s\t%s\n' "$ip" "${name:-(PTRなし)}"
done < ips.txt

公開 DNS に短時間で大量の問い合わせを送るのは避け、件数が多いときは間隔を空けてください。JSON で結果を扱いたい場合は --json を付けて出力し、jq . で手元の版の構造を確かめてから値を取り出す式を書きます。

なお、WordPress を Cloudflare などの CDN やリバースプロキシの後ろで動かしている場合、アクセスログに残る IP は訪問者ではなくプロキシの IP であることがあります。その状態で逆引きしても訪問者の情報は分からないので、ログの記録方法を先に確認してください。

逆引きと正引きが一致しているかを確かめる

メールを送るサーバーでは、逆引きで得たホスト名を正引きすると元の IP に戻る状態(Forward-confirmed reverse DNS、FCrDNS とも呼ばれます)が求められることが多いです。たとえば Google が公開している送信者向けのガイドラインでも、送信元 IP に有効な逆引きと正引きを設定することが挙げられています。要件の詳細は変わることがあるので、各メール事業者の最新の案内を確認してください。

WordPress を VPS で動かし、そのサーバーから直接メールを送っている場合は、次の手順で確かめます。

ip=192.0.2.10
name=$(doggo -x "$ip" --short | head -n 1)
echo "PTR: $name"

# 得られたホスト名を正引きして、元の IP が含まれるか確かめる
doggo "$name" A --short
doggo "$name" AAAA --short

正引きの結果に元の IP が含まれていれば一致しています。含まれない場合は、逆引きに設定したホスト名の A(IPv6 なら AAAA)レコードを、自分のドメインの DNS に追加するか直します。逆引きは事業者側、正引きは自分のドメインの DNS 側、と設定する場所が分かれていることに注意してください。

共有のレンタルサーバーやメール配信サービスを使っている場合は、送信元 IP の逆引きは事業者が管理しているため、利用者が変更する必要は通常ありません。

まとめ

  • doggo では -x を付けて IP アドレスを渡すと逆引きでき、--short でホスト名だけを表示できます。
  • 逆引きのレコードは IP を割り当てた事業者やプロバイダーが管理しており、変更は管理画面か依頼で行います。
  • @ で複数のリゾルバーを並べるとキャッシュの差を比べられ、逆引きゾーンの権威サーバーに聞けば今の設定が分かります。
  • メール送信に使うサーバーは、逆引きで得たホスト名を正引きすると元の IP に戻るかを確かめます。
  • オプションや出力の構造は版で変わるため、doggo --help と jq . で手元の版を確認します。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲