Documentation ¶
Index ¶
- func ArrayMap[T any, U any](arr []T, fn func(T) U) []U
- func DNSQueryHTTPS(domain string, port string, DOHServer string) ([]dns.SVCB, error)
- func DnsResolver(queryCallback func(m *dns.Msg) (r *dns.Msg, err error), domain string, ...) ([]string, error)
- func DnsResolverMultipleServers(domain string, ...) ([]string, error)
- func DoQClient(msg *dns.Msg, doQServerURL string) (qA *dns.Msg, err error)
- func DoTClient(msg *dns.Msg, doTServerURL string) (qA *dns.Msg, err error)
- func DohClient(msg *dns.Msg, dohServerURL string) (r *dns.Msg, err error)
- func ExtractDOQServerDetails(doqServer string) (string, string, error)
- func GetOrCreateDNSCacheForString(cacheMutex *sync.Mutex, DnsCache generic.MapInterface[string, cache.ICache], ...) cache.ICache
- func NewMapImplementSynchronous[T comparable, Y any](entries ...generic.PairInterface[T, Y]) generic.MapInterface[T, Y]
- func PrintResponse(resp *http.Response)
- func Sha512(input []byte) string
- type DnsResolverOptions
- type MapImplementSynchronous
- func (m *MapImplementSynchronous[T, Y]) Clear()
- func (m *MapImplementSynchronous[T, Y]) Delete(key T)
- func (m *MapImplementSynchronous[T, Y]) Entries() []generic.PairInterface[T, Y]
- func (m *MapImplementSynchronous[T, Y]) ForEach(f func(Y, T, generic.MapInterface[T, Y]))
- func (m *MapImplementSynchronous[T, Y]) Get(key T) (Y, bool)
- func (m *MapImplementSynchronous[T, Y]) Has(key T) bool
- func (m *MapImplementSynchronous[T, Y]) Iterator() generic.Iterator[generic.PairInterface[T, Y]]
- func (m *MapImplementSynchronous[T, Y]) Keys() []T
- func (m *MapImplementSynchronous[T, Y]) Set(key T, value Y)
- func (m *MapImplementSynchronous[T, Y]) Size() int64
- func (m *MapImplementSynchronous[T, Y]) Values() []Y
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ArrayMap ¶
ArrayMap 函数接收一个数组和一个函数作为参数,将数组中的每个元素通过函数进行转换,并返回转换后的新数组。 [T any] 和 [U any] 表示函数可以接受任何类型的数组和转换函数。 arr 参数是待处理的数组。 fn 参数是一个函数,用于对数组中的每个元素进行处理并返回一个新的值。 返回值是转换后的新数组。
func DNSQueryHTTPS ¶
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 ¶
DoQClient 是一个通过DOQ(DNS over QUIC)协议与DNS服务器进行通信的函数。
参数: msg 是一个包含DNS查询信息的dns.Msg结构体指针。 dohServerURL 是一个字符串,表示DOQ服务器的URL。
返回值: 返回一个包含DNS应答信息的dns.Msg结构体指针和一个错误信息。 如果成功,错误信息为nil;如果发生错误,则返回相应的错误信息。
func DoTClient ¶
DoTClient 是一个通过DOH(DNS over HTTPS)协议与DNS服务器进行通信的函数。 msg: 包含要发送的DNS查询信息的dns.Msg对象。 doTServerURL: DOH服务器的URL,用于指定通信的目标DNS服务器。 返回值 qA: 发送查询后收到的应答消息,为dns.Msg对象。 返回值 err: 如果在进行DNS查询过程中遇到错误,则返回错误信息。
func DohClient ¶
DohClient 是一个通过DOH(DNS over HTTPs)协议与DNS服务器进行通信的函数。
参数: msg: 代表DNS查询消息的dns.Msg对象。 dohServer: 代表DOH服务器的URL字符串。
返回值: r: 代表DNS应答消息的dns.Msg对象。 err: 如果过程中发生错误,则返回错误信息。
func ExtractDOQServerDetails ¶
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 ¶
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.