美文网首页
golang 使用SOCKS5访问网络

golang 使用SOCKS5访问网络

作者: Spooking | 来源:发表于2017-12-11 10:40 被阅读0次

很实用的代码,测试可用。

package main

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

    "golang.org/x/net/proxy"
)

func main() {
    // create a socks5 dialer
    dialer, err := proxy.SOCKS5("tcp", "127.0.0.1:1080", nil, proxy.Direct)
    if err != nil {
        fmt.Fprintln(os.Stderr, "can't connect to the proxy:", err)
        os.Exit(1)
    }
    // setup a http client
    httpTransport := &http.Transport{}
    httpClient := &http.Client{Transport: httpTransport}
    // set our socks5 as the dialer
    httpTransport.Dial = dialer.Dial
    if resp, err := httpClient.Get("https://www.google.com"); err != nil {
        log.Fatalln(err)
    } else {
        defer resp.Body.Close()
        body, _ := ioutil.ReadAll(resp.Body)
        fmt.Printf("%s\n", body)
    }
}

相关文章

网友评论

      本文标题:golang 使用SOCKS5访问网络

      本文链接:https://www.haomeiwen.com/subject/nmxiixtx.html