dns

package
v0.0.0-...-04ef08d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2024 License: MulanPSL-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ArrayMap

func ArrayMap[T any, U any](arr []T, fn func(T) U) []U

ArrayMap 函数接收一个数组和一个函数作为参数,将数组中的每个元素通过函数进行转换,并返回转换后的新数组。 [T any] 和 [U any] 表示函数可以接受任何类型的数组和转换函数。 arr 参数是待处理的数组。 fn 参数是一个函数,用于对数组中的每个元素进行处理并返回一个新的值。 返回值是转换后的新数组。

func DNSQueryHTTPS

func DNSQueryHTTPS(domain string, port string, DOHServer string) ([]dns.SVCB, error)

DNSQueryHTTPS 执行DNS查询以获取HTTPS服务记录。

参数: - domain: 需要查询的域名。 - port: 目标端口,如果不为"443",则会构建特定端口的查询域名。 - DOHServer: DNS-over-HTTPS服务器地址。

返回值: - []dns.SVCB: 查询到的HTTPS服务记录列表。 - error: 查询过程中发生的任何错误。

func DnsResolver

func DnsResolver(queryCallback func(m *dns.Msg) (r *dns.Msg, err error), domain string, HttpsPort int, options *DnsResolverOptions) ([]string, error)

DnsResolver 是一个用于解析特定域名下多种类型记录的函数,例如A记录、AAAA记录和HTTPS记录。 queryCallback 是一个回调函数,用于执行DNS查询并返回结果。 domain 是需要查询的域名。 optionsCallBacks 是一个可选参数列表,用于修改查询选项。 返回解析到的地址列表和可能发生的错误。

func DnsResolverMultipleServers

func DnsResolverMultipleServers(domain string, queryCallbacks generic.MapInterface[string, func(m *dns.Msg) (r *dns.Msg, err error)], optionsCallBacks ...func(*DnsResolverOptions)) ([]string, error)

DnsResolverMultipleServers 使用多个DNS查询回调函数来解析给定域名,并返回解析结果的去重列表。 queryCallbacks: 一个包含多个DNS查询回调函数的切片,每个函数尝试解析指定的域名。 domain: 需要解析的域名。 optionsCallBacks: 可选的一组函数,用于定制DNS解析器的选项。 返回值: 解析到的IP地址字符串切片(去重后),如果没有任何解析结果,则返回错误。

func DoQClient

func DoQClient(msg *dns.Msg, doQServerURL string) (qA *dns.Msg, err error)

DoQClient 是一个通过DOQ(DNS over QUIC)协议与DNS服务器进行通信的函数。

参数: msg 是一个包含DNS查询信息的dns.Msg结构体指针。 dohServerURL 是一个字符串,表示DOQ服务器的URL。

返回值: 返回一个包含DNS应答信息的dns.Msg结构体指针和一个错误信息。 如果成功,错误信息为nil;如果发生错误,则返回相应的错误信息。

func DoTClient

func DoTClient(msg *dns.Msg, doTServerURL string) (qA *dns.Msg, err error)

DoTClient 是一个通过DOH(DNS over HTTPS)协议与DNS服务器进行通信的函数。 msg: 包含要发送的DNS查询信息的dns.Msg对象。 doTServerURL: DOH服务器的URL,用于指定通信的目标DNS服务器。 返回值 qA: 发送查询后收到的应答消息,为dns.Msg对象。 返回值 err: 如果在进行DNS查询过程中遇到错误,则返回错误信息。

func DohClient

func DohClient(msg *dns.Msg, dohServerURL string) (r *dns.Msg, err error)

DohClient 是一个通过DOH(DNS over HTTPs)协议与DNS服务器进行通信的函数。

参数: msg: 代表DNS查询消息的dns.Msg对象。 dohServer: 代表DOH服务器的URL字符串。

返回值: r: 代表DNS应答消息的dns.Msg对象。 err: 如果过程中发生错误,则返回错误信息。

func ExtractDOQServerDetails

func ExtractDOQServerDetails(doqServer string) (string, string, error)

ExtractDOQServerDetails takes a DOQ server URL and returns the server name and port as separate strings.

func GetOrCreateDNSCacheForString

func GetOrCreateDNSCacheForString(cacheMutex *sync.Mutex, DnsCache generic.MapInterface[string, cache.ICache], s string) cache.ICache

GetOrCreateDNSCacheForString 创建或获取一个与给定字符串关联的缓存对象。

参数: cacheMutex *sync.Mutex: 用于保护并发访问缓存的互斥锁。 options *DnsResolverOptions: DNS解析器选项,包含缓存配置等。 s string: 关联缓存对象的字符串键。

返回值: cache.ICache: 返回一个实现了ICache接口的缓存对象。

func NewMapImplementSynchronous

func NewMapImplementSynchronous[T comparable, Y any](entries ...generic.PairInterface[T, Y]) generic.MapInterface[T, Y]

func PrintResponse

func PrintResponse(resp *http.Response)

func Sha512

func Sha512(input []byte) string

Sha512 计算给定字节切片的SHA-512哈希值,并以字符串形式返回

Types

type DnsResolverOptions

type DnsResolverOptions struct {
	QueryCallback generic.MapInterface[string, func(m *dns.Msg) (r *dns.Msg, err error)] // QueryCallback 是一个回调函数,用于自定义DNS查询逻辑。接收一个dns.Msg类型的参数,返回一个dns.Msg类型和error类型的值。
	Domain        string                                                                 // Domain 是需要进行DNS解析的域名。
	DnsCache      generic.MapInterface[string, cache.ICache]
	HttpsPort     int // HttpsPort 是HTTPS服务监听的端口号。
	QueryHTTPS    bool
}

DnsResolverOptions 是DNS解析器的配置选项。

type MapImplementSynchronous

type MapImplementSynchronous[T comparable, Y any] struct {
	// contains filtered or unexported fields
}

func (*MapImplementSynchronous[T, Y]) Clear

func (m *MapImplementSynchronous[T, Y]) Clear()

func (*MapImplementSynchronous[T, Y]) Delete

func (m *MapImplementSynchronous[T, Y]) Delete(key T)

Delete implements generic.MapInterface.

func (*MapImplementSynchronous[T, Y]) Entries

func (m *MapImplementSynchronous[T, Y]) Entries() []generic.PairInterface[T, Y]

Entries implements generic.MapInterface.

func (*MapImplementSynchronous[T, Y]) ForEach

func (m *MapImplementSynchronous[T, Y]) ForEach(f func(Y, T, generic.MapInterface[T, Y]))

ForEach implements generic.MapInterface.

func (*MapImplementSynchronous[T, Y]) Get

func (m *MapImplementSynchronous[T, Y]) Get(key T) (Y, bool)

Get implements generic.MapInterface.

func (*MapImplementSynchronous[T, Y]) Has

func (m *MapImplementSynchronous[T, Y]) Has(key T) bool

Has implements generic.MapInterface.

func (*MapImplementSynchronous[T, Y]) Iterator

func (m *MapImplementSynchronous[T, Y]) Iterator() generic.Iterator[generic.PairInterface[T, Y]]

Iterator implements generic.MapInterface.

func (*MapImplementSynchronous[T, Y]) Keys

func (m *MapImplementSynchronous[T, Y]) Keys() []T

Keys implements generic.MapInterface.

func (*MapImplementSynchronous[T, Y]) Set

func (m *MapImplementSynchronous[T, Y]) Set(key T, value Y)

Set implements generic.MapInterface.

func (*MapImplementSynchronous[T, Y]) Size

func (m *MapImplementSynchronous[T, Y]) Size() int64

Size implements generic.MapInterface.

func (*MapImplementSynchronous[T, Y]) Values

func (m *MapImplementSynchronous[T, Y]) Values() []Y

Values implements generic.MapInterface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL