Files
dns-server/http/domain_info_enrich.go
T
Alex Yang f9e2e5a6bc update
2026-04-12 21:40:22 +08:00

65 lines
1.9 KiB
Go

package http
import (
"dns-server/log"
)
// enrichLogsWithDomainInfo 为日志条目添加域名信息、威胁信息和跟踪器信息
func (s *Server) enrichLogsWithDomainInfo(logs []log.QueryLog) []map[string]interface{} {
enrichedLogs := make([]map[string]interface{}, len(logs))
for i, logItem := range logs {
// 将日志条目转换为 map
logMap := make(map[string]interface{})
logMap["timestamp"] = logItem.Timestamp
logMap["clientIP"] = logItem.ClientIP
logMap["domain"] = logItem.Domain
logMap["queryType"] = logItem.QueryType
logMap["result"] = logItem.Result
logMap["responseTime"] = logItem.ResponseTime
logMap["dnsServer"] = logItem.DNSServer
logMap["answers"] = logItem.Answers
// 查询域名信息
if domainInfo := s.domainInfoManager.GetDomainInfo(logItem.Domain); domainInfo != nil {
logMap["domainInfo"] = domainInfo
}
// 查询威胁信息
if threatInfo := s.domainInfoManager.GetThreatInfo(logItem.Domain); threatInfo != nil {
logMap["threatInfo"] = threatInfo
}
// 查询跟踪器信息
if trackerInfo := s.domainInfoManager.GetTrackerInfo(logItem.Domain); trackerInfo != nil {
logMap["trackerInfo"] = trackerInfo
}
enrichedLogs[i] = logMap
}
return enrichedLogs
}
// enrichDomainInfoWithDetails 为域名查询结果添加详细信息
func (s *Server) enrichDomainInfoWithDetails(domain string, baseResult map[string]interface{}) map[string]interface{} {
// 添加域名信息
if domainInfo := s.domainInfoManager.GetDomainInfo(domain); domainInfo != nil {
baseResult["domainInfo"] = domainInfo
}
// 添加威胁信息
if threatInfo := s.domainInfoManager.GetThreatInfo(domain); threatInfo != nil {
baseResult["threatInfo"] = threatInfo
baseResult["isThreat"] = true
}
// 添加跟踪器信息
if trackerInfo := s.domainInfoManager.GetTrackerInfo(domain); trackerInfo != nil {
baseResult["trackerInfo"] = trackerInfo
baseResult["isTracker"] = true
}
return baseResult
}