Skip to content
Go JavaScript
Branch: master
Clone or download
mattn Merge pull request #13 from MMulthaupt/bug/proxy_precedence
Fall through automatic proxy detection if it returns no URL.
Latest commit f9202b1 Aug 5, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
autoload add autoload import Jan 24, 2019
pacfile_examples add support for pacfile on windows Jan 23, 2017
.gitignore
GetProxyFunc.go Updated readme and comments Jun 6, 2019
LICENSE Update LICENSE Jun 7, 2019
README.md Update README.md Jun 7, 2019
example_test.go add windows tests Jan 23, 2017
ieproxy.go Undo breaking change of Automatic -> Script Jun 7, 2019
ieproxy_unix.go test env overrider Jan 23, 2017
ieproxy_windows.go Undo breaking change of Automatic -> Script Jun 7, 2019
kernel32_data_windows.go Safely wrap GlobalFree Jun 7, 2019
pac_unix.go Added WPAD support Jun 4, 2019
pac_windows.go Trim spaces from inputs, match comment pattern Jun 7, 2019
proxyMiddleman_unix.go Fix build settings for proxyMiddleman Jul 1, 2019
proxyMiddleman_windows.go Fall through automatic proxy detection if it returns no URL. Jun 28, 2019
utils.go move test utils to separate file Jan 23, 2017
utils_test.go move test utils to separate file Jan 23, 2017
windows_test.go Undo breaking change of Automatic -> Script Jun 7, 2019
winhttp_data_windows.go Avoided unnecessarily obtaining script details Jun 6, 2019

README.md

ieproxy

Go package to detect the proxy settings on Windows platform.

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.

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().

Method Supported 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.
}
You can’t perform that action at this time.