Utiliser des proxys avec les requêtes UTLS et HTTP 1.1
Question :
Comment vous connectez-vous à un hôte utilisant UTLS avec une empreinte TLS aléatoire tout en utilisant un proxy HTTP ou SOCKS5 ?
Réponse :
Pour utiliser des proxys avec des requêtes UTLS et HTTP 1.1, vous pouvez suivez ces étapes :
1. Créez un numéroteur proxy :
Tout d'abord, créez un numéroteur proxy qui composera le proxy et renverra un net.Conn. Voici un exemple simplifié :
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. Composez le proxy et créez un client UTLS :
Une fois que vous disposez d'un numéroteur proxy, composez le proxy pour créer un net.Conn. Ensuite, utilisez ce net.Conn lors de la création du client UTLS, avant l'établissement de la liaison. Par exemple :
import ( "github.com/refraction-networking/utls" ) uconn := utls.UClient(conn, cfg, &utls.HelloRandomizedALPN)
3. Envoyer une requête HTTP via une connexion UTLS :
Enfin, vous pouvez utiliser la connexion UTLS pour envoyer une requête HTTP 1.1. Voici comment procéder :
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 }
Conseils supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!