cname支持

This commit is contained in:
2025-11-21 19:17:38 +08:00
parent f6a686967c
commit 0102337747

View File

@@ -89,6 +89,7 @@ func handleDns(c *gin.Context, url string, params map[string]interface{}) {
break break
} }
// 解析dig输出行格式如example.com. 300 IN A 192.168.1.1 // 解析dig输出行格式如example.com. 300 IN A 192.168.1.1
// 或者www.baidu.com. 1038 IN CNAME www.a.shifen.com.
parts := strings.Fields(line) parts := strings.Fields(line)
if len(parts) >= 5 { if len(parts) >= 5 {
// parts[3] 是 "IN" (record type)parts[4] 是记录类型 (A, AAAA, CNAME等) // 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 := "" recordValue := ""
if len(parts) > 5 { if len(parts) > 5 {
recordValue = strings.Join(parts[5:], " ") recordValue = strings.Join(parts[5:], " ")
// 移除CNAME值末尾的点如果有
recordValue = strings.TrimSuffix(recordValue, ".")
} }
// 处理AAAAA记录 // 处理AAAAA和CNAME记录
if recordClass == "A" || recordClass == "AAAA" { if recordClass == "A" || recordClass == "AAAA" || recordClass == "CNAME" {
ipItem := map[string]interface{}{ recordItem := map[string]interface{}{
"url": parts[0], "url": strings.TrimSuffix(parts[0], "."), // 移除域名末尾的点
"type": recordClass, "type": recordClass,
"ip": recordValue, "ip": recordValue, // CNAME记录中ip字段存储的是CNAME值
} }
ipList = append(ipList, ipItem) ipList = append(ipList, recordItem)
} }
} }
} }