net: Index | Files

package proxy

import ""

Package proxy provides support for a variety of protocols to proxy network data.


Package Files

direct.go per_host.go proxy.go socks5.go


var Direct = direct{}

Direct is a direct proxy: one that makes network connections directly.

func RegisterDialerType Uses

func RegisterDialerType(scheme string, f func(*url.URL, Dialer) (Dialer, error))

RegisterDialerType takes a URL scheme and a function to generate Dialers from a URL with that scheme and a forwarding Dialer. Registered schemes are used by FromURL.

type Auth Uses

type Auth struct {
    User, Password string

Auth contains authentication parameters that specific Dialers may require.

type Dialer Uses

type Dialer interface {
    // Dial connects to the given address via the proxy.
    Dial(network, addr string) (c net.Conn, err error)

A Dialer is a means to establish a connection.

func FromEnvironment Uses

func FromEnvironment() Dialer

FromEnvironment returns the dialer specified by the proxy related variables in the environment.

func FromURL Uses

func FromURL(u *url.URL, forward Dialer) (Dialer, error)

FromURL returns a Dialer given a URL specification and an underlying Dialer for it to make network requests.

func SOCKS5 Uses

func SOCKS5(network, address string, auth *Auth, forward Dialer) (Dialer, error)

SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address with an optional username and password. See RFC 1928 and RFC 1929.

type PerHost Uses

type PerHost struct {
    // contains filtered or unexported fields

A PerHost directs connections to a default Dialer unless the host name requested matches one of a number of exceptions.

func NewPerHost Uses

func NewPerHost(defaultDialer, bypass Dialer) *PerHost

NewPerHost returns a PerHost Dialer that directs connections to either defaultDialer or bypass, depending on whether the connection matches one of the configured rules.

func (*PerHost) AddFromString Uses

func (p *PerHost) AddFromString(s string)

AddFromString parses a string that contains comma-separated values specifying hosts that should use the bypass proxy. Each value is either an IP address, a CIDR range, a zone (* or a host name (localhost). A best effort is made to parse the string and errors are ignored.

func (*PerHost) AddHost Uses

func (p *PerHost) AddHost(host string)

AddHost specifies a host name that will use the bypass proxy.

func (*PerHost) AddIP Uses

func (p *PerHost) AddIP(ip net.IP)

AddIP specifies an IP address that will use the bypass proxy. Note that this will only take effect if a literal IP address is dialed. A connection to a named host will never match an IP.

func (*PerHost) AddNetwork Uses

func (p *PerHost) AddNetwork(net *net.IPNet)

AddNetwork specifies an IP range that will use the bypass proxy. Note that this will only take effect if a literal IP address is dialed. A connection to a named host will never match.

func (*PerHost) AddZone Uses

func (p *PerHost) AddZone(zone string)

AddZone specifies a DNS suffix that will use the bypass proxy. A zone of "" matches "" and all of its subdomains.

func (*PerHost) Dial Uses

func (p *PerHost) Dial(network, addr string) (c net.Conn, err error)

Dial connects to the address addr on the given network through either defaultDialer or bypass.

Package proxy imports 8 packages (graph) and is imported by 396 packages. Updated 2019-04-16. Refresh now. Tools for package owners.