Created
August 19, 2020 23:07
-
-
Save aeharvlee/4da4f1859c82e4632e5528d011a557bb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Do reverse dns lookup for list of ipv4 concurrently. | |
func (bs *BotSpecifier) ReverseDNSLookup(ctx context.Context, ipv4s []string) error { | |
bs.Logger.WithFields(logrus.Fields{ | |
"package": "specifier", | |
"function": "ReverseDNSLookup", | |
}).Debugf("Start Reverse DNS Lookup about %d ipv4s.", len(ipv4s)) | |
for _, ipv4 := range ipv4s { | |
bs.WaitGroup.Add(1) | |
go func(ipv4 string) { | |
defer bs.WaitGroup.Done() | |
addrs, err := bs.Resolver.LookupAddr(ctx, ipv4) | |
if err != nil { | |
// Most of error is "not found: 3 (NXDOMAIN)" | |
// We don't care because what we want is to find well-known bot(spider) or crawler domains. | |
} else { | |
host := addrs[0] | |
bs.Mutex.Lock() | |
bs.DnsBook = append(bs.DnsBook, domain.DNS{IPv4: ipv4, Domain: host}) | |
bs.Mutex.Unlock() | |
} | |
}(ipv4) | |
} | |
bs.WaitGroup.Wait() | |
bs.Logger.WithFields(logrus.Fields{ | |
"package": "specifier", | |
"function": "ReverseDNSLookup", | |
}).Debugf("ReverseDNSLookup is Finished. We Looked up %d addresses.", len(bs.DnsBook)) | |
return nil | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment