Probe and document the CHT/ASKEY RTF8207W GPON router including system info, GPON optical status, WAN/LAN config, WiFi settings, and full API endpoint reference for CLI management. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.4 KiB
3.4 KiB
快速上手
前置條件
- 需在 Tailscale 網路中(192.168.42.x subnet route 可達)
- 帳號
cht,密碼請參考機器底部貼紙
透過瀏覽器登入
- 開啟 https://192.168.42.1/(需接受自簽憑證)
- 輸入帳號、密碼、圖形驗證碼
- 登入後進入
/avanzada.asp管理頁面
透過 curl API 登入
1. 建立 Session
COOKIEJAR=/tmp/router_cookies.txt
curl -sk -c "$COOKIEJAR" https://192.168.42.1/ -o /dev/null
2. 取得驗證碼值
CAPTCHA_VAL=$(curl -sk -b "$COOKIEJAR" -c "$COOKIEJAR" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Referer: https://192.168.42.1/" \
-d '' \
'https://192.168.42.1/cgi-bin/cbGetSummary.xml?Captcha=1')
3. 下載驗證碼圖片(4 張,各一個字元)
for i in 1 2 3 4; do
curl -sk -b "$COOKIEJAR" \
"https://192.168.42.1/img/captcha${i}.png?m=0.$(date +%s)" \
-o "/tmp/captcha${i}.png"
done
4. 編碼帳密(XOR 0x1f)
encode_userpass() {
local input="$1" output=""
for (( i=0; i<${#input}; i++ )); do
local c="${input:$i:1}"
local ord=$(printf '%d' "'$c")
local xored=$((ord ^ 0x1f))
output+=$(printf "\\$(printf '%03o' $xored)")
done
echo -n "$output"
}
USERNAME_ENC=$(encode_userpass "cht")
PASSWORD_ENC=$(encode_userpass "你的密碼")
5. 送出登入
RESULT=$(curl -sk -b "$COOKIEJAR" -c "$COOKIEJAR" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Referer: https://192.168.42.1/" \
--data-urlencode "rqcaptchaValue=${CAPTCHA_VAL}" \
--data-urlencode "rqCaptchaText=看到的驗證碼" \
--data-urlencode "rqUsername=${USERNAME_ENC}" \
--data-urlencode "rqPasswd=${PASSWORD_ENC}" \
-d "rqTimeout=1198&rqLanguage=TW" \
'https://192.168.42.1/cgi-bin/cbCheckLogin.xml')
Result=0 表示登入成功。
6. 查詢 API
登入後即可存取各 API endpoint:
# 系統摘要
curl -sk -b "$COOKIEJAR" -X POST -d '' \
'https://192.168.42.1/cgi-bin/cbGetSummary.xml'
# GPON 資訊
curl -sk -b "$COOKIEJAR" -X POST -d '' \
'https://192.168.42.1/cgi-bin/cbGetGPONInfo.xml'
# WAN 連線
curl -sk -b "$COOKIEJAR" -X POST -d '' \
'https://192.168.42.1/cgi-bin/cbGetWanIPIntf.xml'
# WiFi 2.4G
curl -sk -b "$COOKIEJAR" -X POST -d '' \
'https://192.168.42.1/cgi-bin/cbGetWifiAccPt.xml'
# WiFi 5G(指定 radio index 1)
curl -sk -b "$COOKIEJAR" -X POST -d 'dpm_cfg_wifi_0i=1' \
'https://192.168.42.1/cgi-bin/cbGetWifi.xml'
# LAN IPv4
curl -sk -b "$COOKIEJAR" -X POST -d '' \
'https://192.168.42.1/cgi-bin/cbGetLanIPv4Addr.xml'
已知 API Endpoint 列表
| Endpoint | 說明 |
|---|---|
| cbGetSummary | 系統摘要(CPU、RAM、韌體版本、開機時間) |
| cbGetGPONInfo | GPON 光纖狀態(序號、光功率、溫度) |
| cbGetCustomConfig | WAN 模式設定 |
| cbGetWanIPIntf | WAN 介面詳細資訊(IP、DNS、PPPoE) |
| cbGetLanIPv4Addr | LAN IPv4 位址 |
| cbGetLanIPv4Intf | LAN 介面設定 |
| cbGetIPv6Info | IPv6 狀態 |
| cbGetDhcpv4ServerPool | DHCP Server Pool |
| cbDhcpV4SvrPoolGetClt | DHCP 租借客戶端 |
| cbGetWifi | WiFi Radio 設定(0=2.4G, 1=5G) |
| cbGetWifiAccPt | WiFi AP 設定(0=2.4G, 1=5G) |
| cbGetWifiSsid | WiFi SSID 設定 |
| cbListWifiAccPtAssociation | WiFi 已連線客戶端 |
| cbGetStatistic | 封包統計 |
| cbCheckLogin | 登入 |