mirror of
https://github.com/maride/pancap.git
synced 2026-04-13 18:45:46 +00:00
Unify logging process
This commit is contained in:
@@ -62,29 +62,31 @@ func processDNSAnswer(answers []layers.DNSResourceRecord) {
|
||||
}
|
||||
}
|
||||
|
||||
// Prints a summary of all DNS answers
|
||||
func printDNSAnswerSummary() {
|
||||
// Generates a summary of all DNS answers
|
||||
func generateDNSAnswerSummary() string {
|
||||
summary := ""
|
||||
|
||||
// Overall question stats
|
||||
fmt.Printf("%d DNS answers in total\n", numAnswers)
|
||||
fmt.Printf("%s records\n", generateDNSTypeSummary(answerType))
|
||||
fmt.Printf("%d unique domains of %d base domains, of which are %d private (non-ICANN) TLDs.\n", len(answerDomains), len(answerBaseDomains), len(answerPrivateDomains))
|
||||
summary = fmt.Sprintf("%s%d DNS answers in total\n", summary, numAnswers)
|
||||
summary = fmt.Sprintf("%s%s records\n", summary, generateDNSTypeSummary(answerType))
|
||||
summary = fmt.Sprintf("%s%d unique domains of %d base domains, of which are %d private (non-ICANN) TLDs.\n", summary, len(answerDomains), len(answerBaseDomains), len(answerPrivateDomains))
|
||||
|
||||
// Output base domains answered with
|
||||
if len(answerBaseDomains) > 0 {
|
||||
fmt.Println("Answered with these base domains:")
|
||||
common.PrintTree(answerBaseDomains)
|
||||
summary = fmt.Sprintf("Answered with these base domains:\n%s", common.GenerateTree(answerBaseDomains))
|
||||
}
|
||||
|
||||
// Output private domains
|
||||
if len(answerPrivateDomains) > 0 {
|
||||
fmt.Println("Answered with these private (non-ICANN managed) domains:")
|
||||
common.PrintTree(answerPrivateDomains)
|
||||
summary = fmt.Sprintf("%sAnswered with these private (non-ICANN managed) domains:\n%s", summary, common.GenerateTree(answerPrivateDomains))
|
||||
}
|
||||
|
||||
// Check for public and private IPs
|
||||
fmt.Printf("Answered with %d public IP addresses and %d private IP addresses\n", len(answerPublicIPv4), len(answerPrivateIPv4))
|
||||
summary = fmt.Sprintf("%sAnswered with %d public IP addresses and %d private IP addresses\n", summary, len(answerPublicIPv4), len(answerPrivateIPv4))
|
||||
if len(answerPrivateIPv4) > 0 {
|
||||
fmt.Println("Private IP addresses in answer:")
|
||||
common.PrintTree(answerPrivateIPv4)
|
||||
summary = fmt.Sprintf("%sPrivate IP addresses in answer:\n%s", summary, common.GenerateTree(answerPrivateIPv4))
|
||||
}
|
||||
|
||||
// Return summary
|
||||
return summary
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package dns
|
||||
|
||||
import (
|
||||
"github.com/fatih/color"
|
||||
"git.darknebu.la/maride/pancap/output"
|
||||
"github.com/google/gopacket"
|
||||
"github.com/google/gopacket/layers"
|
||||
)
|
||||
@@ -27,9 +27,6 @@ func ProcessDNSPacket(packet gopacket.Packet) error {
|
||||
|
||||
// Print a summary after all DNS packets were processed
|
||||
func PrintDNSSummary() {
|
||||
headline := color.New(color.FgRed, color.Bold)
|
||||
headline.Println("DNS Request Summary")
|
||||
printDNSQuestionSummary()
|
||||
headline.Println("DNS Response Summary")
|
||||
printDNSAnswerSummary()
|
||||
output.PrintBlock("DNS Request Summary", generateDNSQuestionSummary())
|
||||
output.PrintBlock("DNS Response Summary", generateDNSAnswerSummary())
|
||||
}
|
||||
|
||||
@@ -51,22 +51,25 @@ func processDNSQuestion(questions []layers.DNSQuestion) {
|
||||
}
|
||||
}
|
||||
|
||||
// Prints a summary of all DNS questions
|
||||
func printDNSQuestionSummary() {
|
||||
// Generates a summary of all DNS questions
|
||||
func generateDNSQuestionSummary() string {
|
||||
summary := ""
|
||||
|
||||
// Overall question stats
|
||||
fmt.Printf("%d DNS questions in total\n", numQuestions)
|
||||
fmt.Printf("%s records\n", generateDNSTypeSummary(questionType))
|
||||
fmt.Printf("%d unique domains of %d base domains, of which are %d private (non-ICANN) TLDs.\n", len(questionDomains), len(questionBaseDomains), len(questionPrivateDomains))
|
||||
summary = fmt.Sprintf("%s%d DNS questions in total\n", summary, numQuestions)
|
||||
summary = fmt.Sprintf("%s%s records\n", summary, generateDNSTypeSummary(questionType))
|
||||
summary = fmt.Sprintf("%s%d unique domains of %d base domains, of which are %d private (non-ICANN) TLDs.\n", summary, len(questionDomains), len(questionBaseDomains), len(questionPrivateDomains))
|
||||
|
||||
// Output base domains asked for
|
||||
if len(questionBaseDomains) > 0 {
|
||||
fmt.Println("Asked for these base domains:")
|
||||
common.PrintTree(questionBaseDomains)
|
||||
summary = fmt.Sprintf("%sAsked for these base domains:\n%s", summary, common.GenerateTree(questionBaseDomains))
|
||||
}
|
||||
|
||||
// Output private domains
|
||||
if len(questionPrivateDomains) > 0 {
|
||||
fmt.Println("Asked for these private (non-ICANN managed) domains:")
|
||||
common.PrintTree(questionPrivateDomains)
|
||||
summary = fmt.Sprintf("%sAsked for these private (non-ICANN managed) domains:\n%s", summary, common.GenerateTree(questionPrivateDomains))
|
||||
}
|
||||
|
||||
// And return summary
|
||||
return summary
|
||||
}
|
||||
Reference in New Issue
Block a user