IP 地理定位與 DNS 查詢指南:從網域名稱到伺服器位置的完整排查路徑

Web/SEO

IP 地理定位原理

IP 定位不是 GPS——它基於 IP 位址分配資料庫,精度取決於資料庫品質。

精度級別 範圍 資料來源
國家級 國家 WHOIS 分配記錄
城市級 城市/地區 ISP 報告 + 骨幹網路路由
區縣級 10-50km 商業資料庫(MaxMind)
街道級 1-5km WiFi/行動網路定位輔助

IP 定位無法精確定位到具體地址,只能到大致區域。


使用工具庫查詢 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 查詢場景

查網站 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. 作業系統 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小時) 一般網站
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. DNS 查詢 → 網域能否解析?
   ❌ 無法解析 → DNS 設定錯誤或網域過期
   ✅ 能解析 → 繼續

2. Ping IP → 伺服器是否可達?
   ❌ 逾時 → 伺服器當機或防火牆
   ✅ 可達 → 繼續

3. curl -I → HTTP 回應碼?
   301/302 → 重新導向問題
   403 → 權限問題
   500 → 伺服器錯誤
   200 → 可能是前端問題

場景二:郵件發送失敗

1. 查 MX 記錄 → 郵件伺服器設定是否正確?
2. 查 SPF 記錄 → 發送伺服器是否在 SPF 白名單?
3. 查 DKIM 記錄 → 簽章是否正確?
4. 查 DMARC 記錄 → 郵件策略是否正確?
# 一鍵查郵件相關記錄
dig example.com MX
dig example.com TXT  # SPF + DKIM + DMARC 都在 TXT 中

場景三: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 資訊解讀,就能快速定位網站問題。工具庫提供 DNS 查詢 和 Whois 查詢 兩個線上工具,無需安裝命令列工具,瀏覽器中即可完成網路排查。

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