dns

package
v0.0.0-...-07af6e5 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2023 License: MIT Imports: 4 Imported by: 0

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

func FakeDNSEngineType() interface{}

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

v2ray:api:beta

func LookupIPWithOption

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

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

func (opt IPOption) IsValid() bool

func (IPOption) With

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