Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/projectdiscovery/retryabledns
侦察DNS和子域名枚举信息收集网络安全实用工具与框架DNS 分析
GitHubprojectdiscovery/retryabledns

retryabledns

用 Go 编写的可重试 DNS 客户端

查看仓库
136303个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
retryabledns — 用 Go 编写的可重试 DNS 客户端 | Kitploit

可重试的 DNS 解析器

基于 miekg/dns,并自由借鉴了 bogdanovich/dns_resolver。

功能

  • 支持系统默认 DNS 解析器以及用户自定义的解析器
  • 在发生 I/O 错误、超时或网络故障时重试 DNS 请求
  • 允许任意查询类型
  • 使用随机解析器进行解析
  • 兼容多种 DNS 解析协议(TCP、UDP、DoH 和 DoT)

使用 go get

root@kitploit:~
$ go get github.com/projectdiscovery/retryabledns

执行此命令后,retryabledns 库的源代码将位于你的 $GOPATH 中

/etc/hosts 文件处理

默认情况下,该库出于效率考虑,最多处理 /etc/hosts 文件的 4096 行。如果你的配置拥有更大的 hosts 文件,并且希望处理更多行,可以通过调整 hostsfile.MaxLines 变量轻松配置此限制。

例如:

root@kitploit:~
hostsfile.MaxLines = 10000  // Now the library will process up to 10000 lines from the hosts file

示例

用法示例:

root@kitploit:~
package main

import (
    "log"

    "github.com/projectdiscovery/retryabledns"
    "github.com/miekg/dns"
)

func main() {
    // It requires a list of resolvers.
    // Valid protocols are "udp", "tcp", "doh", "dot". Default are "udp".
    resolvers := []string{"8.8.8.8:53", "8.8.4.4:53", "tcp:1.1.1.1"}
    retries := 2
    hostname := "hackerone.com"

    dnsClient, err := retryabledns.New(resolvers, retries)
    if err != nil {
        log.Fatal(err)
    }

    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.TypeANY
    // dns.TypeTXT, dns.TypeAAAA, dns.TypeSRV (from github.com/miekg/dns)
    // retryabledns.ErrRetriesExceeded will be returned if a result isn't returned in max retries
    dnsResponses, err := dnsClient.Query(hostname, dns.TypeA)
    if err != nil {
        log.Fatal(err)
    }

    log.Println(dnsResponses)
}

致谢:

  • https://github.com/lixiangzhong/dnsutil
  • https://github.com/rs/dnstrace
下载工具