Quantcast
Channel: 詩と創作・思索のひろば
Viewing all articles
Browse latest Browse all 179

Go で SOCKS5 プロキシを利用する

$
0
0

検索すると golang - net/httpでSOCKS proxyを扱う - Qiitaという記事が見つかったけれど、今なら net/proxyパッケージを使えばよさそうだ。

雑な例だとこんな感じ。

import (
    "net/http""golang.org/x/net/proxy"
)

func main() {
    p, err := proxy.SOCKS5("tcp", "127.0.0.1:10001", nil, proxy.Direct)

    client := http.DefaultClient
    client.Transport = &http.Transport{
        Dial: p.Dial,
    }

    resp, err := client.Get(...)
}

proxy.SOCKS5()関数で proxy.Dialerというのが得られるので、これをたとえば http.TransportDialフィールドに渡してやればよい。簡単。

また proxy.FromEnvironment()を使うと環境変数からプロキシの設定を取得できる。この場合以下のように、all_proxy環境変数をよしなに設定してやる必要がある。

all_proxy=socks5://127.0.0.1:10001 ./main

Viewing all articles
Browse latest Browse all 179

Trending Articles