From 01023377476508653a21858f8c668040a2042ced Mon Sep 17 00:00:00 2001 From: yoyo Date: Fri, 21 Nov 2025 19:17:38 +0800 Subject: [PATCH] =?UTF-8?q?cname=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/handler/dns.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/handler/dns.go b/internal/handler/dns.go index 9a6ce62..1ce621f 100644 --- a/internal/handler/dns.go +++ b/internal/handler/dns.go @@ -89,6 +89,7 @@ func handleDns(c *gin.Context, url string, params map[string]interface{}) { break } // 解析dig输出行,格式如:example.com. 300 IN A 192.168.1.1 + // 或者:www.baidu.com. 1038 IN CNAME www.a.shifen.com. parts := strings.Fields(line) if len(parts) >= 5 { // parts[3] 是 "IN" (record type),parts[4] 是记录类型 (A, AAAA, CNAME等) @@ -96,16 +97,18 @@ func handleDns(c *gin.Context, url string, params map[string]interface{}) { recordValue := "" if len(parts) > 5 { recordValue = strings.Join(parts[5:], " ") + // 移除CNAME值末尾的点(如果有) + recordValue = strings.TrimSuffix(recordValue, ".") } - // 只处理A和AAAA记录 - if recordClass == "A" || recordClass == "AAAA" { - ipItem := map[string]interface{}{ - "url": parts[0], + // 处理A、AAAA和CNAME记录 + if recordClass == "A" || recordClass == "AAAA" || recordClass == "CNAME" { + recordItem := map[string]interface{}{ + "url": strings.TrimSuffix(parts[0], "."), // 移除域名末尾的点 "type": recordClass, - "ip": recordValue, + "ip": recordValue, // CNAME记录中,ip字段存储的是CNAME值 } - ipList = append(ipList, ipItem) + ipList = append(ipList, recordItem) } } }