A SOCKS (SOCKS4, SOCKS4A and SOCKS5) Proxy Package for Go
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
Matt Baer 5be269b4e6 Move socks package to code.as/core/socks há 5 anos
spec Add spec of SOCKS protocols. há 11 anos
.gitignore Initial commit há 11 anos
LICENSE Add the license file. há 11 anos
README.md Move socks package to code.as/core/socks há 5 anos
socks.go Move socks package to code.as/core/socks há 5 anos

README.md

SOCKS

GoDoc

SOCKS is a SOCKS4, SOCKS4A and SOCKS5 proxy package for Go, forked from h12w/socks and patched so it’s go getable.

Quick Start

Get the package

go get -u "code.as/core/socks"

Import the package

import "code.as/core/socks"

Create a SOCKS proxy dialing function

dialSocksProxy := socks.DialSocksProxy(socks.SOCKS5, "127.0.0.1:1080")
tr := &http.Transport{Dial: dialSocksProxy}
httpClient := &http.Client{Transport: tr}

Example

package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"

	"code.as/core/socks"
)

func main() {
	dialSocksProxy := socks.DialSocksProxy(socks.SOCKS5, "127.0.0.1:1080")
	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))
}

Alternatives

http://godoc.org/golang.org/x/net/proxy