Labee Dev Toolbox
技術ノートガイド用語解説
無料で試す
  1. ホーム
  2. / 技術ノート
  3. / IP アドレスから何がわかるか — dig と curl で種別・逆引き・プライベート判定を読み解く
ネットワーク

IP アドレスから何がわかるか — dig と curl で種別・逆引き・プライベート判定を読み解く

2026年3月25日 公開 6分で読めます

IP アドレスは単なる数字の列ではありません。種別(IPv4 か IPv6 か)、逆引きホスト名(PTR レコード)、プライベートアドレスかどうかの 3 点を確認するだけで、ネットワーク上の素性がかなり見えてきます。この記事では dig コマンドと Labee Dev Toolbox の IP API を使って、1 つの IP アドレスから読み取れる情報を整理します。

IPv4 と IPv6 の判定

IP アドレスには IPv4 と IPv6 の 2 種類があります。IPv4 は 203.0.113.45 のようにドット区切りの 10 進数 4 オクテットで表記し、IPv6 は 2001:db8::1 のようにコロン区切りの 16 進数で表記します。自分の環境がどちらで接続しているかを知ることは、トラブルシューティングの出発点です。

たとえば、サーバーに接続できないとき、サーバー側が IPv6 に対応していないのにクライアントが IPv6 で接続を試みている場合があります。接続元の IP アドレスの種別を確認するだけで、原因の切り分けが進みます。

dig を使って自分のグローバル IP を確認する方法の一つに、Google Public DNS の o-o.myaddr.l.google.com への TXT クエリーがあります。

dig TXT o-o.myaddr.l.google.com @ns1.google.com +short
"203.0.113.45"

返ってきたアドレスの形式で、IPv4 と IPv6 のどちらで通信しているかがわかります。

Labee Dev Toolbox の IP API を使うと、インターネット側のサーバーから見た接続元 IP を確認できます。dig がローカルのリゾルバー経由で返す結果とは異なり、外部から自分がどう見えているかを知る手段です。

curl "https://labee.dev/api/ip"
{
  "success": true,
  "data": {
    "ip": "203.0.113.45",
    "type": "IPv4",
    "isPrivate": false,
    "ptr": "host-203-0-113-45.example-isp.net"
  },
  "error": null,
  "meta": { "responseTime": 12 }
}

type フィールドが IPv4 または IPv6 で種別を示します。特定の IP アドレスを調べたい場合は ip パラメーターで指定します。

curl "https://labee.dev/api/ip?ip=2001:4860:4860::8888"
{
  "success": true,
  "data": {
    "ip": "2001:4860:4860::8888",
    "type": "IPv6",
    "isPrivate": false,
    "ptr": "dns.google"
  },
  "error": null,
  "meta": { "responseTime": 30 }
}

type が IPv6 で返り、PTR レコードも取得されています。

PTR レコードで IP の「身元」を調べる

PTR(Pointer)レコードは、IP アドレスからホスト名を引く逆引き DNS の仕組みです。通常の DNS が「ホスト名 → IP アドレス」の正引きであるのに対し、PTR は「IP アドレス → ホスト名」の方向で引きます。

IPv4 の逆引きでは in-addr.arpa ドメインを使います。たとえば 8.8.8.8 の PTR を調べるには、オクテットを逆順にした 8.8.8.8.in-addr.arpa に対して PTR クエリーを送ります。IPv6 では ip6.arpa ドメインを使い、各ニブル(4 ビット単位)を逆順に並べます。

dig で逆引きを確認するには -x オプションを使います。

dig -x 8.8.8.8 +short
dns.google.

dns.google が返りました。この IP アドレスが Google の DNS サーバーであることがわかります。末尾のドットは DNS の FQDN 表記です。

PTR レコードが設定されていない IP アドレスに対しては、dig は何も返しません。

dig -x 203.0.113.1 +short

Labee Dev Toolbox の API でも逆引き結果を確認できます。

curl "https://labee.dev/api/ip?ip=8.8.8.8"
{
  "success": true,
  "data": {
    "ip": "8.8.8.8",
    "type": "IPv4",
    "isPrivate": false,
    "ptr": "dns.google"
  },
  "error": null,
  "meta": { "responseTime": 25 }
}

ptr フィールドにホスト名が入ります。逆引きレコードが存在しない場合は null が返ります。

メールサーバーと PTR の関係

PTR レコードが特に重要になるのはメール配送の場面です。Gmail や Outlook などの主要なメール受信サーバーは、送信元 IP アドレスの逆引きを検証します。PTR レコードが未設定の場合、あるいは PTR で得たホスト名を正引きしたときに元の IP アドレスと一致しない場合、スパムと判定される要因になります。

Gmail のガイドラインでは、送信元 IP に有効な PTR レコードを設定することが送信者要件の一つとされています。PTR に加えて SPF・DKIM・DMARC の設定も必要です。メールサーバーを運用している場合は、IP アドレスの逆引きが正しく設定されているかを確認してください。

dig -x 198.51.100.25 +short
mail.example.com.

さらに、この PTR 結果を正引きして元の IP と一致するか検証します。

dig A mail.example.com +short
198.51.100.25

正引きと逆引きが一致していれば、FCrDNS(Forward-confirmed reverse DNS)が成立しています。

プライベートアドレスの判定

IP アドレスには、インターネット上でルーティングされないプライベートアドレスの範囲が定義されています。IPv4 では RFC 1918 で以下の 3 つの範囲が規定されています。

  • 10.0.0.0/8 — クラス A 相当、大規模ネットワーク向け
  • 172.16.0.0/12 — クラス B 相当、中規模ネットワーク向け
  • 192.168.0.0/16 — クラス C 相当、家庭やオフィスの LAN で多用

これ以外にも、ループバック(127.0.0.0/8)やリンクローカル(169.254.0.0/16)があります。IPv6 では、ユニークローカルアドレス(fc00::/7)やリンクローカル(fe80::/10)が該当します。

ある IP アドレスがプライベートかどうかを判定するには、上記の範囲と手動で照合します。たとえば 192.168.1.1 は先頭 16 ビットが 192.168 なので 192.168.0.0/16 に含まれ、プライベートアドレスです。172.20.0.5 は 172.16.0.0/12(172.16.0.0 〜 172.31.255.255)の範囲内なのでプライベート、172.32.0.1 は範囲外なのでグローバルです。判定に迷ったときは、CIDR のネットワーク部とホスト部を計算して範囲に含まれるかを確認します。

Labee Dev Toolbox の API を使えば、この判定をまとめて行えます。isPrivate フィールドが RFC 1918 を含む予約済みアドレス範囲との照合結果を返します。

curl "https://labee.dev/api/ip?ip=192.168.1.1"
{
  "success": true,
  "data": {
    "ip": "192.168.1.1",
    "type": "IPv4",
    "isPrivate": true,
    "ptr": null
  },
  "error": null,
  "meta": { "responseTime": 3 }
}

isPrivate が true になり、ptr は null です。プライベート IP アドレスにはインターネット上の PTR レコードが存在しないため、API は逆引きをスキップします。

プライベートアドレス判定の活用場面

この判定が役立つのは、外部に公開しているつもりのサーバーが実はプライベート IP で応答していないかを確認する場面です。ロードバランサーやリバースプロキシーの設定ミスで、バックエンドのプライベート IP がレスポンスヘッダーに漏れるケースがあります。API やログに記録された IP アドレスが本当にグローバル IP かどうかを素早く判定できます。

シェルスクリプトでグローバル IP を取得する

シェルスクリプトで自分のグローバル IP を変数に格納したい場面は多くあります。dig を使えば外部サービスに依存せずに取得できます。

MY_IP=$(dig TXT o-o.myaddr.l.google.com @ns1.google.com +short | tr -d '"')
echo "$MY_IP"
203.0.113.45

Google Public DNS の TXT レコードに問い合わせると、手元のリゾルバーが経由したグローバル IP が返ります。tr -d '"' でダブルクォートを除去し、そのまま変数として扱えます。

API でまとめて確認したい場合は、Labee Dev Toolbox の plain パラメーターも使えます。

MY_IP=$(curl -s "https://labee.dev/api/ip?plain")
echo "$MY_IP"
203.0.113.45

dig の方法は手元のリゾルバーを経由して名前解決した結果を返すのに対し、Labee API はインターネット側のサーバーから見た接続元 IP を返します。NAT やプロキシーを挟んでいる環境では結果が異なる場合があるため、外部から自分がどう見えているかを確認する手段として使い分けてください。

ドキュメントやサンプルコードに IP アドレスを記載する際は、RFC 5737 で予約された TEST-NET の範囲を使います。ブラウザーから IP アドレスの情報を確認する場合は Labee Dev Toolbox の IP チェック画面を利用できます。

実際のドメインで確認してみる

登録不要、無料です。ドメイン名を入れるだけで外部からの見え方を確認できます。

無料で試す

Pro プラン(準備中)

DNS 変更の自動検知・SSL 期限アラート・複数ドメイン管理など、継続して確認し続けるための機能を準備中です。

関連記事

ネットワーク

技術文書で使うべき「安全な」IP アドレス — RFC 5737 / RFC 3849 と例示用ドメイン RFC 2606

サンプルコードや設定例に 8.8.8.8 や 1.2.3.4 を使っていませんか? IPv4 の TEST-NET(RFC 5737)、IPv6 のドキュメント用プレフィックス(RFC 3849 / RFC 9637)、例示用ドメイン(RFC 2606)の正しい使い方と使い分けを解説します。

2026-04-08 ・ 6分

メール認証

SPF・DKIM・DMARC を外部から確認する方法 — dig と API で設定漏れを検出する

dig コマンドと外部 API を使って、SPF・DKIM・DMARC の設定状況を外部視点から確認する手順を解説します。DKIM セレクターの自動検索、Gmail のバルクセンダー要件との照合、よくある設定漏れパターンの特定方法も紹介します。

2026-04-01 ・ 7分

DNS

DNS 変更後の反映確認、dig だけで大丈夫?

DNS レコードを変更した後、dig コマンドだけでは正確な反映状況がわかりません。キャッシュの仕組みと、外部から確認する具体的な方法を解説します。

2026-04-10 ・ 6分

コンテンツ 技術ノート ガイド 用語解説
ツール ツール一覧 API Reference
Labee 日本語トップ Labee LLC
© 2026 Labee LLC . All rights reserved.
ホーム ブログ ガイド 用語集