Skip to content

家用區網裝置盤查 — DHCP 租約裝置 IP/MAC 身分對應

起因:路由器(中華電信 Askey RTF8207W-E,閘道 192.168.1.1)的 DHCP 租約表列出 13 台裝置,只有 IP/MAC 沒有名字。本文用純被動/低強度探測(不登入路由器、不跑重型掃描)把每台對應到實體設備,並整理成可重跑的普查配方。

裝置對應總表

2026-08-31 實測,ARP MAC 與 DHCP 表 13 筆全數吻合(無 ARP 偽造跡象):

IP MAC 身分 識別依據 確信度
.102 f6:bf:8f:ef:36:bd 這台 MacBook Pro(林炫羽的MacBook Pro / 主機名 yudady) en0 實體 MAC 完全吻合 + scutil --get ComputerName 確定
.115 ca:d7:5a:75:8a:df tommy的MacBook Pro(tommyymr9.local) Bonjour 廣播 SSH/SMB/RFB/AirPlay 全中,SSH 橫幅 OpenSSH 10.3(新版 macOS) 確定
.117 80:32:53:be:3b:6f MSI 遊戲電腦 單播 mDNS 反解回 MSI.local + 廣播 _nvstream_dbd._tcp(NVIDIA GameStream)+ Intel 網卡 OUI 確定
.118 9c:b6:d0:68:53:4d Windows 電腦(雙系統主機) SSH 橫幅 OpenSSH_for_Windows_8.1 + 開 445 + Killer 網卡 OUI(Rivet Networks)
.112 f4:5c:89:c3:28:c3 另一台 Mac(macOS 12 Monterey 等級的舊機) Apple 原廠 OUI + OpenSSH 8.6(Monterey 內建版本);不廣播 Bonjour 中高
.109 52:51:fa:2d:c4:24 iPhone / iPad 62078 埠 = iOS lockdownd 特徵埠 中高
.110 2c:19:5c:4d:5b:9f 小米手機或 IoT 裝置 Xiaomi OUI(Beijing Xiaomi Mobile Software)
.101 f8:89:d2:33:76:ab Amazon 系設備(Echo/Fire/Kindle,休眠中) Cloud Network Technology Singapore OUI(Amazon 代工),無開埠
.104 42:d1:4a:32:e9:84 開私有 Wi-Fi 位址的手機/平板 MAC 隨機化(本地管理位址)+ 無開埠 + 不回 mDNS/NBNS 低(只知道類別)
.105 5a:38:27:14:6e:e5 同上 同上
.106 66:0b:a3:b4:f1:09 同上 同上
.108 9e:9a:dd:13:53:bc 同上 同上
.113 02:ac:90:5c:c9:92 同上 同上

額外發現:ARP 表有一台 192.168.1.116(04:09:86:18:13:b8,Arcadyan OUI) 不在 DHCP 租約表內 —— Arcadyan 是中華電信設備常用代工廠,推測是全屋通 mesh 節點或機上盒(固定 IP 或剛上線)。

識別方法 Pipeline

macOS 沒裝 nmap 也能做完整輪普查,強度遞進:

DHCP 租約表(路由器貼出)
      │
      ▼
[1] ping 全網 → arp -a 交叉驗證 IP↔MAC(13/13 吻合)
      │
      ▼
[2] dns-sd -B 瀏覽 Bonjour 服務(_airplay/_ssh/_rfb/_smb)
    → 撈到 2 台 MacBook 的「人類可讀名」
      │
      ▼
[3] dns-sd -L 解析服務實例 → tommymr9.local → 192.168.1.115
      │
      ▼
[4] 單播 mDNS 反解(UDP 5353 PTR 查詢)→ MSI.local 現形
      │
      ▼
[5] TCP 埠指紋(nc -z)+ SSH 橫幅讀取 → 作業系統版本
      │
      ▼
[6] OUI 查詢(api.macvendors.com)→ 硬體廠商
      │
      ▼
[7] 仍無名 → 路由器 DHCP option 12 hostname(需 captcha 登入,本次未做)

私有 Wi-Fi 位址(MAC 隨機化)

iOS/Android/Windows 都支援每 SSID 隨機化 MAC。判斷法看第一碼的第二個十六進位字元

第二碼 位址類型 範例
2 / 6 / A / E 本地管理(隨機化/虛擬) 9e:、5a:、ca:、66:、42:、52:、02:、f6:
0 / 4 / 8 / C 全域唯一(原廠燒錄) 80:32:、f4:5c:、2c:19:、9c:b6:

本清單 13 台中有 8 台是隨機化位址 —— 這是常態不是異常。推論:

  • 這 8 台裡查 OUI 能查到的(.110 Xiaomi、.115 剛好撞出 Apple?不,.115 的 ca:d7 也是本地位址)只是巧合碰撞,OUI 結果對本地位址不可信
  • 真正可信的 OUI 判定只有全域位址那幾台:.112(Apple)、.117(Intel)、.118(Killer)、.110(Xiaomi)、.101(Amazon 代工)

教訓:本地管理位址查 macvendors 得到的「廠商」是別人燒錄的 OUI 撞庫結果,只能當雜訊。識別隨機化裝置要靠行為指紋(開埠、mDNS、NBNS),不能靠 OUI。

埠指紋速查表

服務 設備指向
22 + SSH-2.0-OpenSSH_x.y OpenSSH 版本即 OS 指紋:8.6=macOS 12、10.3=新版 macOS、for_Windows_8.1=Windows 內建
445 SMB macOS(檔案共享)或 Windows
5000 AirPlay / UPnP Mac 常見組合
5900 VNC / 螢幕共享 Mac 開了遠端管理
62078 iOS lockdownd iPhone/iPad(usbmuxd over Wi-Fi)
7000 AirPlay 接收 Mac(Sidecar/AirPlay 接收器)
49152+ 動態/隨機埠 需逐一探測內容

特徵組合比單埠可靠:.115 = 22+445+5000+5900+7000 五連,是 Mac 開滿共享服務的教科書指紋。

可重跑指令

# 1. 喚醒全網 + ARP 交叉驗證
for i in $(seq 100 120); do ping -c1 -W 800 192.168.1.$i >/dev/null 2>&1; done
arp -a | grep '192.168.1.'

# 2. Bonjour 瀏覽(撈裝置人類名)
dns-sd -B _airplay._tcp local.    # 也試 _ssh/_rfb/_smb/_companion-link
dns-sd -L "tommy的MacBook Pro" _ssh._tcp local.   # 解析實例 → 主機名

# 3. 名稱反解
dscacheutil -q host -a name tommymr9.local

# 4. 埠指紋 + SSH 橫幅
nc -z -G 1 192.168.1.115 22 445 5900 7000
nc -G 3 192.168.1.118 22 </dev/null | head -c 60

# 5. OUI(僅對全域 MAC 有意義)
curl -s https://api.macvendors.com/f4:5c:89:c3:28:c3

單播 mDNS 反解(抓 MSI.local 那步)是對 192.168.1.x 的 5353/UDP 發 PTR 查詢,Python 30 行內搞定;NBNS 節點狀態查詢(UDP 137)對這批裝置全被防火牆擋掉,別浪費時間。

未識別與待辦

  • .104/.105/.106/.108/.113 五台隨機化裝置:要 100% 對上名字,需登入路由器 https://192.168.1.1(帳號 cht),到 DHCP 頁點每筆「More」看 DHCP option 12 hostname。驗證碼需人工輸入
  • .116(Arcadyan)身分確認:全屋通節點 or 機上盒
  • 若某台要長期固定 IP:在路由器端做 DHCP 靜態綁定(見下方相關筆記),別只在系統內寫死

相關筆記


盤查時間:2026-08-31,方法:ARP + Bonjour + 單播 mDNS + 埠指紋 + OUI,未登入路由器