Documentation ¶
Index ¶
- Variables
- func LookupIPByNS(ctx context.Context, network, host string, ns net.Addr) ([]net.IP, error)
- func LookupIPFromHosts(ctx context.Context, network, host string) ([]net.IP, error)
- func ParseHosts(content []byte) map[string][]net.IP
- func ParserServers(lines []string) []net.Addr
- func ResolvNameserver() []string
- func ServersFromEnv() []net.Addr
- type Client
- func (client *Client) GetServers() []net.Addr
- func (client *Client) LookupIP(ctx context.Context, network, host string) ([]net.IP, error)
- func (client *Client) LookupIPAddr(ctx context.Context, host string) ([]net.IPAddr, error)
- func (client *Client) ResolverInterceptor() *fsresolver.Interceptor
- func (client *Client) SetServers(servers []net.Addr)
- type HostsFile
- type ResolvConf
- type ResolverConfig
Constants ¶
This section is empty.
Variables ¶
var DefaultHostsFile fsresolver.LookupIPer = NewHostsFile("")
DefaultHostsFile os default hosts file
var DefaultResolvConf = NewResolvConf("")
DefaultResolvConf os default ResolvConf
Functions ¶
func LookupIPByNS ¶
LookupIPByNS LookupIP with nameserver
func LookupIPFromHosts ¶ added in v0.0.5
LookupIPFromHosts find domain in hosts file
func ParserServers ¶
ParserServers parser servers addr from lines
func ResolvNameserver ¶
func ResolvNameserver() []string
ResolvNameserver get nameserver list from DefaultResolvConf
func ServersFromEnv ¶
ServersFromEnv parser nameserver list from os.env 'FSNET_NAMESERVER'
eg: export FSNET_NAMESERVER=1.1.1.1,8.8.8.8:53
Types ¶
type Client ¶
type Client struct { HostsFile fsresolver.LookupIPer // LookupIPFilter after query dns success, filter the result LookupIPFilter func(ctx context.Context, network, host string, ns net.Addr, result []net.IP) ([]net.IP, error) // Servers nameserver list,eg 114.114.114.114:53 Servers []net.Addr // contains filtered or unexported fields }
Client prue dns client
func (*Client) LookupIPAddr ¶
LookupIPAddr lookup ipaddr
func (*Client) ResolverInterceptor ¶
func (client *Client) ResolverInterceptor() *fsresolver.Interceptor
ResolverInterceptor to ResolverInterceptor
func (*Client) SetServers ¶
SetServers set servers
type HostsFile ¶
HostsFile hosts file parser
func NewHostsFile ¶
NewHostsFile create new HostsFile instance
if start fail,then panic already start watch the hostPath when hostPath is empty, use the default path: on unix like system,the default path is /etc/hosts. the default hostsPath can set by Environment Variables 'FSGO_HOSTS', eg: export FSGO_HOSTS=./my_hosts
type ResolvConf ¶
ResolvConf parser for resolv.conf
func NewResolvConf ¶
func NewResolvConf(confPath string) *ResolvConf
NewResolvConf create new ResolvConf instance
already start watch the confPath
func (*ResolvConf) Nameserver ¶
func (rf *ResolvConf) Nameserver() []string
Nameserver get nameserver list from file
type ResolverConfig ¶
type ResolverConfig struct { Nameserver []string Search []string SortList []string Options []string }
ResolverConfig resolv.conf see https://man7.org/linux/man-pages/man5/resolv.conf.5.html
func ParseResolv ¶
func ParseResolv(content []byte) *ResolverConfig
ParseResolv parse resolv.conf content