SOCKS5-vertsnavnauppslag í HTTP-klientinum hjá Go
Hví socks5 og socks5h ikki velja ymiskar DNS-hættir í vanliga HTTP-flutninginum hjá Go.
Í vanliga HTTP-flutninginum hjá Go 1.27.3 viðgera socks5 og socks5h mál-nøvn á sama hátt. Eitt mál við vertsnavni verður sent sum vertsnavn til proxyin. At skifta hesi skemu skiftir ikki millum lokalt og fjart DNS sum í curl.
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)
}
Skift dokumentatiónsadressuna út við títt SOCKS5-endapunkt; møguleikar eru í listanum við SOCKS5-proxyum. Dømið brúkar egnu flutningsloysnina hjá net/http; eitt annað Go-bókasavn kann hava annan atburð.
Tvey nøvn skulu kortini skiljast sundur. Ein talmerkt proxyadressa krevur einki uppslag av proxyvertinum; ein proxy við navni má finnast lokalt, áðrenn ein SOCKS-fyrispurningur kann sendast. Eitt talmerkt mál hevur einki mál-navn at loysa og kann ikki vísa viðgerð av vertsnøvnum. Fyri at kanna veruliga SOCKS-valið skalt tú síggja, um máløkið ber navn ella adressu.
Vanligi flutningurin stuðlar proxyskemunum http, https, socks5 og socks5h. Eitt alment SOCKS-heiti prógvar ikki SOCKS5-stuðul á einum endapunkti. Hetta dømið sendir HTTP oman á TCP og roynir hvørki aðrar SOCKS-skipanir ella UDP-framsending.