cname支持
This commit is contained in:
@@ -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, ".")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 只处理A和AAAA记录
|
// 处理A、AAAA和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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user