65 lines
1.9 KiB
Go
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
|
|
}
|