Riżoluzzjoni tal-ismijiet SOCKS5 fil-klijent HTTP ta’ Go
Għaliex socks5 u socks5h ma jagħżlux modi DNS differenti fit-trasport HTTP standard ta’ Go.
Fit-trasport HTTP standard ta’ Go 1.27.3, socks5 u socks5h jittrattaw l-ismijiet tad-destinazzjoni bl-istess mod. Mira b’isem tal-host tintbagħat lill-proxy bħala isem tal-host. Bidla bejn dawn l-iskemi ma taqlibx bejn DNS lokali u remot bħalma jiġri f’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)
}
Ibdel l-indirizz tad-dokumentazzjoni bil-punt finali SOCKS5 tiegħek; tista’ ssib kandidati fil-lista ta’ proxies SOCKS5. L-eżempju juża t-trasport ta’ net/http stess; librerija Go oħra tista’ taħdem b’mod differenti.
Xorta hemm żewġ ismijiet x’tiddistingwi. Indirizz numeriku tal-proxy ma jeħtieġx tiftix tal-host tal-proxy; proxy b’isem irid jinstab lokalment qabel tintbagħat talba SOCKS. Destinazzjoni numerika ma għandhiex isem x’jiġi solvut u ma turix it-trattament tal-ismijiet tal-host. Biex teżamina l-għażla SOCKS reali, ara jekk il-qasam tad-destinazzjoni jġorrx isem jew indirizz.
It-trasport standard jappoġġa l-iskemi proxy http, https, socks5 u socks5h. Tikketta ġenerika SOCKS ma tipprovax appoġġ għal SOCKS5 fil-punt finali. Dan l-eżempju jibgħat HTTP fuq TCP u ma jittestjax kmandi SOCKS oħra jew relay UDP.