https://github.com/zt2/retryabledns
Retryable DNS client in Go
https://github.com/zt2/retryabledns
Last synced: 5 months ago
JSON representation
Retryable DNS client in Go
- Host: GitHub
- URL: https://github.com/zt2/retryabledns
- Owner: zt2
- License: mit
- Fork: true (projectdiscovery/retryabledns)
- Created: 2021-01-20T16:21:18.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-20T17:03:15.000Z (over 5 years ago)
- Last Synced: 2025-10-10T00:26:46.691Z (9 months ago)
- Language: Go
- Size: 42 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Retryable dns resolver
Based on `miekg/dns` and freely inspired by `bogdanovich/dns_resolver`.
## Features
- Supports system default resolvers along with user supplied ones
- Retries dns requests in case of I/O/Time/Network failures
- Allows arbitrary query types
- Resolution with random resolvers
### Using *go get*
```
$ go get github.com/projectdiscovery/retryabledns
```
After this command *retryabledns* library source will be in your $GOPATH
## Example
Usage Example:
``` go
package main
import (
"log"
dns "github.com/projectdiscovery/retryabledns"
)
func main() {
// it requires a list of resolvers
resolvers := []string{"8.8.8.8", "8.8.4.4"}
retries := 2
hostname := "hackerone.com"
dnsClient := dns.New(resolvers, retries)
ips, err := dnsClient.Resolve(hostname)
if err != nil {
log.Fatal(err)
}
log.Println(ips)
// Query Types: dns.TypeA, dns.TypeNS, dns.TypeCNAME, dns.TypeSOA, dns.TypePTR, dns.TypeMX
// dns.TypeTXT, dns.TypeAAAA (from github.com/miekg/dns)
dnsResponses, err := dnsClient.ResolveRaw(hostname, dns.TypeA)
if err != nil {
log.Fatal(err)
}
log.Println(dnsResponses)
}
```