Categorygithub.com/mattn/go-ieproxy
modulepackage
0.0.12
Repository: https://github.com/mattn/go-ieproxy.git
Documentation: pkg.go.dev

# README

ieproxy

Go package to detect the proxy settings on Windows platform, and MacOS.

On Windows, the settings are initially attempted to be read from the WinHttpGetIEProxyConfigForCurrentUser DLL call, but falls back to the registry (CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings) in the event the DLL call fails.

On MacOS, the settings are read from CFNetworkCopySystemProxySettings method of CFNetwork.

For more information, take a look at the documentation

Methods

You can either obtain a net/http compatible proxy function using ieproxy.GetProxyFunc(), set environment variables using ieproxy.OverrideEnvWithStaticProxy() (though no automatic configuration is available this way), or obtain the proxy settings via ieproxy.GetConf().

MethodSupported configuration options:
ieproxy.GetProxyFunc()Static, Specified script, and fully automatic
ieproxy.OverrideEnvWithStaticProxy()Static
ieproxy.GetConf()Depends on how you use it

Examples

Using GetProxyFunc():

func init() {
	http.DefaultTransport.(*http.Transport).Proxy = ieproxy.GetProxyFunc()
}

GetProxyFunc acts as a middleman between net/http and mattn/go-ieproxy in order to select the correct proxy configuration based off the details supplied in the config.

Using OverrideEnvWithStaticProxy():

func init() {
	ieproxy.OverrideEnvWithStaticProxy()
	http.DefaultTransport.(*http.Transport).Proxy = http.ProxyFromEnvironment
}

OverrideEnvWithStaticProxy overrides the relevant environment variables (HTTP_PROXY, HTTPS_PROXY, NO_PROXY) with the static, manually configured proxy details typically found in the registry.

Using GetConf():

func main() {
	conf := ieproxy.GetConf()
	//Handle proxies how you want to.
}

# Packages

Package autoload automatically calls OverrideEnvWithStaticProxy, which writes new values to the `http_proxy`, `https_proxy` and `no_proxy` environment variables.

# Functions

GetConf retrieves the proxy configuration from the Windows Regedit.
GetProxyFunc is a forwarder for the OS-Exclusive proxyMiddleman_os.go files.
OverrideEnvWithStaticProxy writes new values to the `http_proxy`, `https_proxy` and `no_proxy` environment variables.
ReloadConf reloads the proxy configuration.
StringFromUTF16Ptr converts a *uint16 C string to a Go String.

# Structs

ProxyConf gathers the configuration for proxy.
ProxyScriptConf contains the configuration for automatic proxy.
StaticProxyConf contains the configuration for static proxy.