Go SOCKS5 クライアントをセットアップするには?

Susan Sarandon
リリース: 2024-11-24 17:15:19
オリジナル
689 人が閲覧しました

How to Set Up a Go SOCKS5 Client?

Go SOCKS5 クライアントのセットアップ

Go プログラミング言語は、SOCKS5 プロキシのサポートを含む包括的なネットワーク ライブラリを提供します。ただし、net/proxy パッケージのドキュメントには、そのメソッドを効果的に利用する方法に関する詳細な例がありません。このコンテキストにおける重要なメソッドの 1 つは、SOCKS5 ダイヤラを作成する SOCKS5 です。

SOCKS5 関数は、いくつかのパラメータを受け取ります。

  • network: ネットワーク タイプ。通常は「tcp」です。 SOCKS5 over TCP.
  • addr: SOCKS5 プロキシ サーバーのアドレス (次の形式) "host:port".
  • auth: オプションの認証オブジェクト (ほとんどの SOCKS5 サーバーでは使用されません)。
  • forward: 宛先ホストへの接続を確立するために使用されるダイヤラのタイプ。

関数自体は Dialer タイプを返します。これは、SOCKS5 プロキシを介してルーティングされる接続の作成に使用できます。一般的な使用例は、SOCKS5 プロキシを利用する HTTP クライアントをセットアップすることです。

Go で SOCKS5 クライアントを作成する方法の簡略化された例を次に示します。

import (
    "fmt"
    "net"
    "net/http"
    "net/http/proxy"
)

func main() {
    // Establish SOCKS5 dialer
    proxyDialer, err := proxy.SOCKS5("tcp", "proxy_ip", nil, proxy.Direct)
    if err != nil {
        fmt.Println("Error connecting to proxy:", err)
        return
    }

    // Create HTTP transport using our SOCKS5 dialer
    transport := &http.Transport{Dial: proxyDialer.Dial}

    // Initialize HTTP client with our transport
    client := &http.Client{Transport: transport}

    // Make a request through our SOCKS5 proxy
    req, err := http.NewRequest("GET", "https://example.com", nil)
    if err != nil {
        fmt.Println("Error creating request:", err)
        return
    }

    resp, err := client.Do(req)
    if err != nil {
        fmt.Println("Error making request:", err)
        return
    }

    defer resp.Body.Close()
    fmt.Println("Response status:", resp.Status)
}
ログイン後にコピー

この例では、次のことを前提としています。 proxy_ip は SOCKS5 プロキシ サーバーの IP アドレスまたはホスト名です。 SOCKS5 関数を使用し、SOCKS5 関数が作成するダイヤラーを通じて HTTP リクエストをルーティングすることにより、SOCKS5 サーバーを通じてプロキシされる接続を確立できます。

以上がGo SOCKS5 クライアントをセットアップするには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート