IPジオロケーションとDNS検索ガイド:ドメインからサーバー所在地までの完全な切り分け手順
Web/SEO伊藤 結衣
IPジオロケーションの仕組み
IPジオロケーションはGPSではありません。IPアドレス割り当てデータベースに基づいており、精度はデータベースの品質に依存します。
| 精度レベル | 範囲 | データソース |
|---|---|---|
| 国レベル | 国 | WHOIS割り当てレコード |
| 都市レベル | 都市/地域 | ISPレポート+バックボーンルーティング |
| 地区レベル | 10-50km | 商用データベース(MaxMind) |
| 通りレベル | 1-5km | WiFi/モバイル回線測位の補助 |
IPジオロケーションで具体的な住所まで特定することはできません。あくまで大まかな地域までです。
ToolsKuでIP情報を調べる
DNS検索
- DNS検索ツールを開く
- ドメインを入力(例:
example.com) - レコードタイプを選択(A/AAAA/CNAME/MX/TXT/NS)
- 検索をクリックして結果を確認
Whois検索
- Whois検索ツールを開く
- ドメインを入力
- 登録情報(レジストラ、登録日、有効期限、登録者)を確認
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#网络工具#教程