dns

package
v5.3.0 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2023 License: MIT Imports: 4 Imported by: 14

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrEmptyResponse = errors.New("empty response")

ErrEmptyResponse indicates that DNS query succeeded but no answer was returned.

Functions

func ClientType

func ClientType() interface{}

ClientType returns the type of Client interface. Can be used for implementing common.HasType.

v2ray:api:beta

func FakeDNSEngineType added in v5.2.0

func FakeDNSEngineType() interface{}

FakeDNSEngineType returns the type of FakeDNSEngine interface. Can be used for implementing common.HasType.

v2ray:api:beta

func LookupIPWithOption added in v5.2.0

func LookupIPWithOption(client Client, domain string, option IPOption) ([]net.IP, error)

LookupIPWithOption is a helper function for querying DNS information from a dns.Client with dns.IPOption.

v2ray:api:beta

func RCodeFromError

func RCodeFromError(err error) uint16

Types

type Client

type Client interface {
	features.Feature

	// LookupIP returns IP address for the given domain. IPs may contain IPv4 and/or IPv6 addresses.
	LookupIP(domain string) ([]net.IP, error)
}

Client is a V2Ray feature for querying DNS information.

v2ray:api:stable

type ClientWithFakeDNS added in v5.2.0

type ClientWithFakeDNS interface {
	// AsFakeDNSClient converts the client to dns.Client that enables FakeDNS querying option.
	AsFakeDNSClient() Client

	// AsFakeDNSEngine converts the client to dns.FakeDNSEngine that could serve FakeDNSEngine feature.
	AsFakeDNSEngine() FakeDNSEngine
}

ClientWithFakeDNS is an optional feature for utilizing FakeDNS feature of DNS client.

v2ray:api:beta

type FakeDNSEngine

type FakeDNSEngine interface {
	features.Feature

	// GetFakeIPForDomain returns fake IP addresses for the given domain, and registers the domain with the returned IPs.
	GetFakeIPForDomain(domain string) []net.Address

	// GetDomainFromFakeDNS returns the bound domain name for the given fake IP.
	GetDomainFromFakeDNS(ip net.Address) string
}

FakeDNSEngine is a V2Ray feature for converting between domain and fake IPs.

v2ray:api:beta

type FakeDNSEngineRev0

type FakeDNSEngineRev0 interface {
	FakeDNSEngine

	// IsIPInIPPool tests whether the given IP address resides in managed fake IP pools.
	IsIPInIPPool(ip net.Address) bool

	// GetFakeIPForDomain3 registers and returns fake IP addresses for the given domain in IPv4 and/or IPv6.
	GetFakeIPForDomain3(domain string, IPv4 bool, IPv6 bool) []net.Address
}

FakeDNSEngineRev0 adds additional APIs for FakeDNSEngine.

v2ray:api:beta

type IPOption

type IPOption struct {
	IPv4Enable bool
	IPv6Enable bool
	FakeEnable bool
}

IPOption is an object for IP query options.

func (IPOption) IsValid added in v5.2.0

func (opt IPOption) IsValid() bool

func (IPOption) With added in v5.2.0

func (opt IPOption) With(other IPOption) IPOption

type IPv4Lookup

type IPv4Lookup interface {
	LookupIPv4(domain string) ([]net.IP, error)
}

IPv4Lookup is an optional feature for querying IPv4 addresses only.

v2ray:api:beta

type IPv6Lookup

type IPv6Lookup interface {
	LookupIPv6(domain string) ([]net.IP, error)
}

IPv6Lookup is an optional feature for querying IPv6 addresses only.

v2ray:api:beta

type RCodeError

type RCodeError uint16

func (RCodeError) Error

func (e RCodeError) Error() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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