IPジオロケーションとDNS検索ガイド:ドメインからサーバー所在地までの完全な切り分け手順

Web/SEO

IPジオロケーションの仕組み

IPジオロケーションはGPSではありません。IPアドレス割り当てデータベースに基づいており、精度はデータベースの品質に依存します。

精度レベル 範囲 データソース
国レベル 国 WHOIS割り当てレコード
都市レベル 都市/地域 ISPレポート+バックボーンルーティング
地区レベル 10-50km 商用データベース(MaxMind)
通りレベル 1-5km WiFi/モバイル回線測位の補助

IPジオロケーションで具体的な住所まで特定することはできません。あくまで大まかな地域までです。


ToolsKuでIP情報を調べる

DNS検索

  1. DNS検索ツールを開く
  2. ドメインを入力(例:example.com)
  3. レコードタイプを選択(A/AAAA/CNAME/MX/TXT/NS)
  4. 検索をクリックして結果を確認

Whois検索

  1. Whois検索ツールを開く
  2. ドメインを入力
  3. 登録情報(レジストラ、登録日、有効期限、登録者)を確認

DNSレコードタイプ詳解

タイプ 名称 用途 例
A アドレスレコード ドメイン → IPv4 example.com → 93.184.216.34
AAAA IPv6アドレス ドメイン → IPv6 example.com → 2606:2800:220:1:...
CNAME 別名レコード ドメイン → 別のドメイン www.example.com → example.com
MX メール交換 メールサーバー example.com → mail.example.com (優先度10)
TXT テキストレコード SPF/DKIM/認証 "v=spf1 include:_spf.google.com"
NS ネームサーバー ドメインのネームサーバー example.com → ns1.example.com
SOA ゾーン権限の開始 ゾーン管理情報 プライマリNS+管理者メール+シリアル番号
SRV サービスレコード サービスディスカバリ _http._tcp.example.com → target:port
CAA 証明書発行権限 証明書発行の制限 0 issue "letsencrypt.org"

よくあるDNS検索シナリオ

WebサイトのIPを調べる

# コマンドライン
dig example.com A
nslookup example.com

# 結果
example.com.    3600    IN    A    93.184.216.34

メールサーバーを調べる

dig example.com MX

# 結果
example.com.    3600    IN    MX    10 mail.example.com.
example.com.    3600    IN    MX    20 mail2.example.com.

SPFレコードを調べる(迷惑メール対策)

dig example.com TXT

# 結果
example.com.    3600    IN    TXT    "v=spf1 include:_spf.google.com ~all"

DNS名前解決の流れ

ユーザーが example.com を入力
  ↓
1. ブラウザのDNSキャッシュ → ヒット?返す
  ↓
2. OSのDNSキャッシュ → ヒット?返す
  ↓
3. ルーターのDNSキャッシュ → ヒット?返す
  ↓
4. ISPの再帰リゾルバ → ヒット?返す
  ↓
5. ルートネームサーバー(.)→ .com のNSを返す
  ↓
6. .com トップレベルドメインサーバー → example.com のNSを返す
  ↓
7. example.com の権威サーバー → Aレコードを返す
  ↓
結果:93.184.216.34

DNSキャッシュ時間(TTL)

dig example.com

# ANSWER SECTION:
example.com.    3600    IN    A    93.184.216.34
#               ↑ TTL(秒)= 1時間
TTL値 適用シーン
300(5分) 頻繁に変わるもの(CDN、ブルーグリーンデプロイ)
3600(1時間) 一般的なWebサイト
86400(1日) 安定したサービス(メール、NS)

Whois情報の読み方

検索結果の主要フィールド

Domain Name: EXAMPLE.COM
Registrar: Google Domains LLC
Registrar URL: https://domains.google
Creation Date: 1995-08-14
Expiration Date: 2028-08-13
Name Server: NS1.GOOGLE.COM
Name Server: NS2.GOOGLE.COM
Registrant Organization: Example Inc.
DNSSEC: unsigned
フィールド 意味 用途
Registrar レジストラ ドメイン管理の窓口
Creation Date 登録日 ドメインの経過年数を判断
Expiration Date 有効期限 ドメインの失効を防止
Name Server DNSサーバー 名前解決の管理先
Registrant 登録者 所有情報(プライバシー保護の場合あり)
DNSSEC DNSセキュリティ拡張 DNS応答の検証

プライバシー保護

# プライバシー保護なし
Registrant Name: John Doe
Registrant Email: john@example.com

# プライバシー保護あり
Registrant Name: REDACTED FOR PRIVACY
Registrant Email: Please contact registrar

ネットワーク切り分け実践

シナリオ1:Webサイトが開かない

1. DNS検索 → ドメインは名前解決できるか?
   ❌ 解決できない → DNS設定ミスまたはドメイン失効
   ✅ 解決できる → 次へ

2. IPにPing → サーバーに到達できるか?
   ❌ タイムアウト → サーバーダウンまたはファイアウォール
   ✅ 到達できる → 次へ

3. curl -I → HTTPステータスコードは?
   301/302 → リダイレクトの問題
   403 → 権限の問題
   500 → サーバー側エラー
   200 → フロントエンド側の問題の可能性

シナリオ2:メール送信が失敗する

1. MXレコードを確認 → メールサーバーの設定は正しいか?
2. SPFレコードを確認 → 送信サーバーはSPFの許可リストに入っているか?
3. DKIMレコードを確認 → 署名は正しいか?
4. DMARCレコードを確認 → メールポリシーは正しいか?
# メール関連レコードをまとめて検索
dig example.com MX
dig example.com TXT  # SPF + DKIM + DMARC はすべてTXTレコードに格納

シナリオ3:CDN設定の検証

1. CNAMEを確認 → ドメインはCDNを指しているか?
   www.example.com → cdn.example.com.cdn77.org

2. Aレコードを確認 → CDNエッジノードのIP
3. 複数地域からDNS検索 → CDNが最寄りノードを返すか検証

JavaScriptでDNSを検索する

ブラウザ側(DoH)

// DNS over HTTPS(Cloudflare)
async function dnsLookup(domain, type = 'A') {
  const url = `https://cloudflare-dns.com/dns-query?name=${domain}&type=${type}`;
  const response = await fetch(url, {
    headers: { 'Accept': 'application/dns-json' },
  });
  const data = await response.json();
  return data.Answer;
}

// 使い方
const records = await dnsLookup('example.com', 'A');
// [{ name: "example.com", type: 1, TTL: 3600, data: "93.184.216.34" }]

Node.js側

import { resolve } from 'node:dns/promises';

// Aレコードを検索
const addresses = await resolve('example.com', 'A');
// ["93.184.216.34"]

// MXレコードを検索
const mxRecords = await resolve('example.com', 'MX');
// [{ exchange: "mail.example.com", priority: 10 }]

// すべてのレコードを検索
const anyRecords = await resolve('example.com', 'ANY');

よくある質問

DNS変更はどのくらいで反映される?

TTL次第です。旧TTLが3600秒なら、最悪の場合1時間かかります。DNSを変更する前にTTLを300秒に下げ、旧TTLが失効してから変更しましょう。

場所によってDNSの結果が違うのはなぜ?

CDNやAnycastはユーザーの位置に応じて異なるIPを返します。これは正常な動作であり、DNSの問題ではありません。

DNSSECは何の役に立つ?

DNSSECはデジタル署名でDNS応答の真正性を検証し、DNSハイジャック攻撃を防ぎます。DNSSECの検証に失敗すると、ブラウザは接続を拒否します。


まとめ

IPジオロケーションとDNS検索は、ネットワーク切り分けの基本スキルです。DNSレコードタイプ、名前解決の流れ、Whois情報の読み方をマスターすれば、Webサイトの問題を素早く特定できます。ToolsKuはDNS検索とWhois検索の2つのオンラインツールを提供しており、コマンドラインツールをインストールせずにブラウザだけでネットワーク切り分けができます。

#IP定位#DNS查询#Whois#网络工具#教程