feat: implement DNS server fingerprinting (HAN-384) (#10)
CI / test (push) Has been cancelled

This commit was merged in pull request #10.
This commit is contained in:
2026-06-07 16:56:51 +00:00
parent 35be7539b4
commit 76f5010a5e
6 changed files with 395 additions and 7 deletions
+13 -6
View File
@@ -44,8 +44,9 @@ type jsonResult struct {
}
type jsonServer struct {
Name string `json:"name"`
IPs []string `json:"ips"`
Name string `json:"name"`
IPs []string `json:"ips"`
Version string `json:"version,omitempty"`
}
type jsonSummary struct {
@@ -104,10 +105,16 @@ func (f *jsonFormatter) WriteSummary(results []traverse.TraversalResult) error {
if f.cfg.ShowServers {
servers := collectServers(results)
for name, ips := range servers {
f.payload.Servers = append(f.payload.Servers, jsonServer{
Name: name,
IPs: ips,
})
srv := jsonServer{Name: name, IPs: ips}
if f.cfg.ShowVersions && f.cfg.Fingerprints != nil {
for _, ip := range ips {
if v := f.cfg.Fingerprints[ip]; v != "" {
srv.Version = v
break
}
}
}
f.payload.Servers = append(f.payload.Servers, srv)
}
}