SOCKS: a SOCKS Proxy Package for Go
SOCKS is a SOCKS4, SOCKS4A and SOCKS5 proxy package for Go. Quick Start Get the package go get -u "h12.io/socks" Import the package import "h12.io/socks" Create a SOCKS proxy dialling function dialSocksProxy := socks.Dial("socks5://127.0.0.1:1080?timeout=5s") tr := &http.Transport{Dial: dialSocksProxy} httpClient := &http.Client{Transport: tr} User/password authentication dialSocksProxy := socks.Dial("socks5://user:[email protected]:1080?timeout=5s") Example package main import ( "fmt" "io/ioutil" "log" "net/http" "h12.io/socks" ) func main() { dialSocksProxy := socks.Dial("socks5://127.0.0.1:1080?timeout=5s") tr := &http.Transport{Dial: dialSocksProxy} httpClient := &http.Client{Transport: tr} resp, err := httpClient.Get("http://www.google.com") if err != nil { log.Fatal(err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { log.Fatal(resp.StatusCode) } buf, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatal(err) } fmt.Println(string(buf)) }