SOCKS5 ostalari-izenen ebazpena Go-ren HTTP bezeroan
Zergatik socks5 eta socks5h eskemek ez dituzten DNS modu desberdinak aukeratzen Go-ren HTTP garraio estandarrean.
Go 1.27.3-ren HTTP garraio estandarrean, socks5 eta socks5h eskemek berdin tratatzen dituzte helburuen izenak. Ostalari-izeneko helburua ostalari-izen gisa bidaltzen zaio proxyari. Eskema horiek aldatzeak ez du tokiko eta urruneko DNSa txandakatzen curl-en bezala.
package main
import (
"fmt"
"log"
"net/http"
"net/url"
"time"
)
func main() {
proxyURL, err := url.Parse("socks5://203.0.113.10:1080")
if err != nil {
log.Fatal(err)
}
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = http.ProxyURL(proxyURL)
defer transport.CloseIdleConnections()
client := &http.Client{
Transport: transport,
Timeout: 15 * time.Second,
}
response, err := client.Get("https://example.com/")
if err != nil {
log.Fatal(err)
}
defer response.Body.Close()
fmt.Println(response.StatusCode)
}
Ordeztu dokumentazioko helbidea zure SOCKS5 amaiera-puntuarekin; hautagaiak SOCKS5 proxyen zerrendan begira ditzakezu. Adibideak net/http-ren berezko garraioa erabiltzen du; beste Go liburutegi batek portaera desberdina izan dezake.
Bi izen bereizi behar dira oraindik. Zenbakizko proxy-helbideak ez du proxy-ostalariaren bilaketarik behar; izenezko proxya lokalean aurkitu behar da SOCKS eskaera bidali aurretik. Zenbakizko helburuak ez du ebazteko izenik eta ezin du ostalari-izenen tratamendua frogatu. Benetako SOCKS hautaketa aztertzeko, begiratu helburu-eremuak izena edo helbidea daraman.
Garraio estandarrak http, https, socks5 eta socks5h proxy-eskemak onartzen ditu. SOCKS etiketa orokorrak ez du amaiera-puntuaren SOCKS5 euskarria frogatzen. Adibide honek HTTP bidaltzen du TCP bidez, eta ez ditu probatzen beste SOCKS komandoak edo UDP birbidalketa.