mirror of
https://github.com/docker/gpac
synced 2026-07-21 15:53:50 +00:00
No description
- Go 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| gpacw | ||
| testdata | ||
| .editorconfig | ||
| builtin_functions.go | ||
| builtin_natives.go | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| parser.go | ||
| parser_test.go | ||
| proxy.go | ||
| proxy_test.go | ||
| Readme.md | ||
| socks.go | ||
gpac
This package provides a pure Go pac parser based on otto
Example usage
package main
import (
"fmt"
"github.com/darren/gpac"
)
var scripts = `
function FindProxyForURL(url, host) {
if (isPlainHostName(host)) return DIRECT;
else return "PROXY 127.0.0.1:8080; PROXY 127.0.0.1:8081; DIRECT";
}
`
func main() {
pac, _ := gpac.New(scripts)
r, _ := pac.FindProxyForURL("http://www.example.com/")
fmt.Println(r) // returns PROXY 127.0.0.1:8080; PROXY 127.0.0.1:8081; DIRECT
// Get issues request via a list of proxies and returns at the first request that succeeds
resp, _ := pac.Get("http://www.example.com/")
fmt.Println(resp.Status)
}
Simple wrapper for curl and wget
There's a simple tool that wraps curl and wget for pac file support.
Install
go get github.com/darren/gpac/gpacw
Usage
gpacw wpad.dat curl -v http://example.com
gpacw http://wpad/wpad.dat wget -O /dev/null http://example.com
note url should be the last argument of the command or it will fail.