UTLS および HTTP 1.1 リクエストでプロキシを使用するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-19 11:29:03
オリジナル
449 人が閲覧しました

How to Use Proxies with UTLS and HTTP 1.1 Requests?

UTLS および HTTP 1.1 リクエストでプロキシを使用する

質問:

接続方法HTTP またはSOCKS5 プロキシ?

回答:

UTLS および HTTP 1.1 リクエストでプロキシを使用するには、次の手順に従います:

1.プロキシ ダイヤラーの作成:

まず、プロキシにダイヤルして net.Conn を返すプロキシ ダイヤラーを作成します。簡略化した例を次に示します。

import (
    "net/url"
    "github.com/magisterquis/connectproxy"
    "golang.org/x/net/proxy"
)

var proxyString = "http://127.0.0.1:8080"

dialTLS := func(network, addr string, _ *tls.Config) (net.Conn, error) {
    proxyURI, _ := url.Parse(proxyString)

    var proxyDialer proxy.Dialer
    switch proxyURI.Scheme {
    case "socks5":
        proxyDialer, _ = proxy.SOCKS5("tcp", proxyString, nil, proxy.Direct)
    case "http":
        proxyDialer, _ = connectproxy.New(proxyURI, proxy.Direct)
    }

    return proxyDialer.Dial("tcp", addr)
}
ログイン後にコピー

2.プロキシにダイヤルして UTLS クライアントを作成します:

プロキシ ダイヤラーを作成したら、プロキシにダイヤルして net.Conn を作成します。次に、ハンドシェイクの前に、UTLS クライアントを作成するときにその net.Conn を使用します。例:

import (
    "github.com/refraction-networking/utls"
)

uconn := utls.UClient(conn, cfg, &utls.HelloRandomizedALPN)
ログイン後にコピー

3. UTLS 接続経由で HTTP リクエストを送信する:

最後に、UTLS 接続を使用して HTTP 1.1 リクエストを送信できます。その方法は次のとおりです:

req := &http.Request{
    Method: "GET",
    URL:    &url.URL{Host: "www.example.com", Path: "/"},
    Header: make(http.Header),
}

req.Proto = "HTTP/1.1"
req.ProtoMajor = 1
req.ProtoMinor = 1

if err := req.Write(uconn); err != nil {
    return nil, err
}
ログイン後にコピー

追加のヒント:

  • HTTP CONNECT プロキシには「connectproxy」モジュールの使用を検討してください。
  • Tor の Meek プラグ可能トランスポート ソースを探索する。これにより、Tor のプロキシ処理が簡素化されます。 UTLS および HTTP 1.1 リクエスト。

以上がUTLS および HTTP 1.1 リクエストでプロキシを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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