Go 1.27.3-ৰ মানক HTTP ট্ৰেন্সপ’ৰ্টত socks5 আৰু socks5h-এ গন্তব্যৰ নাম একে ধৰণে ব্যৱহাৰ কৰে। হ’ষ্টনামেৰে দিয়া লক্ষ্য প্ৰক্সিলৈ হ’ষ্টনাম হিচাপেই পঠিওৱা হয়। এই স্কিম দুটা সলনি কৰিলে curl-ৰ দৰে স্থানীয় আৰু দূৰৱৰ্তী DNS-ৰ মাজত সলনি নহয়।

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)
}

নথিপত্ৰৰ বাবে দিয়া ঠিকনাটো আপোনাৰ SOCKS5 এণ্ডপইণ্টেৰে সলনি কৰক; সম্ভাব্য বিকল্প SOCKS5 প্ৰক্সিৰ তালিকাত চাব পাৰে। উদাহৰণটোৱে net/http-ৰ নিজা ট্ৰেন্সপ’ৰ্ট ব্যৱহাৰ কৰে; আন Go লাইব্ৰেৰীয়ে বেলেগ আচৰণ কাৰ্যকৰী কৰিব পাৰে।

তথাপি দুটা নাম পৃথক কৰিব লাগে। সংখ্যাৰে দিয়া প্ৰক্সিৰ ঠিকনাৰ বাবে প্ৰক্সি হ’ষ্টৰ নাম বিচাৰিব নালাগে; নামৰ দ্বাৰা দিয়া প্ৰক্সিটো SOCKS অনুৰোধ পঠিওৱাৰ আগতে স্থানীয়ভাৱে বিচাৰি পাব লাগিব। সংখ্যাৰে দিয়া গন্তব্যৰ সমাধান কৰিবলগীয়া লক্ষ্যৰ নাম নাথাকে আৰু ই হ’ষ্টনাম কেনেকৈ ব্যৱহাৰ কৰা হয় সেয়া দেখুৱাব নোৱাৰে। SOCKS-এ প্ৰকৃততে কি বাছিছে চাবলৈ গন্তব্যৰ ফিল্ডত নাম আছে নে ঠিকনা আছে পৰীক্ষা কৰক।

মানক ট্ৰেন্সপ’ৰ্টে http, https, socks5 আৰু socks5h প্ৰক্সি স্কিম সমৰ্থন কৰে। সাধাৰণ SOCKS লেবেলে এণ্ডপইণ্টত SOCKS5 সমৰ্থন থকাটো প্ৰমাণ নকৰে। এই উদাহৰণে TCP-ৰ ওপৰেৰে HTTP পঠিয়ায় আৰু আন SOCKS আদেশ বা UDP ৰিলে পৰীক্ষা নকৰে।

সম্পৰ্কিত প্ৰবন্ধ