Бару: http.Transport#
package main
import (
"fmt"
"io"
"net/http"
"net/url"
"time"
)
func main() {
proxyURL, _ := url.Parse("http://USER-cc-us:PASS@res.proxy-cyber.com:9000")
client := &http.Client{
Timeout: 45 * time.Second,
Transport: &http.Transport{
Proxy: http.ProxyURL(proxyURL),
DisableKeepAlives: true, // new connection = new exit on the rotating gateway
},
}
resp, err := client.Get("https://api.ipify.org")
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}Қосылуды қайта пайдалану және IP тағайындау әртүрлі басқару элементтері болып табылады.Клиент сеансы розеткаларды қайта пайдаланады; тек тағайындалған шлюз айналуды және жабысқақ сеанс әрекетін анықтайды.Сіздің қызметіңізбен жеткізілетін сеанс параметрлерін пайдаланыңыз және бірнеше сұраулардың шығуын тексеріңіз. Розетканы немесе жөнелтуді жабу: басқа IP-ге кепілдік бермейді.
Бару: бір сұрау бойынша проксиді таңдау#
tr := &http.Transport{
Proxy: func(r *http.Request) (*url.URL, error) {
sid := r.Header.Get("X-Session") // your own hint, never sent to the proxy
r.Header.Del("X-Session")
return url.Parse(fmt.Sprintf("http://USER-cc-de-sid-%s-ttl-10m:PASS@res.proxy-cyber.com:9000", sid))
},
}Бару: SOCKS5#
import "golang.org/x/net/proxy"
dialer, err := proxy.SOCKS5("tcp", "res.proxy-cyber.com:9001", &proxy.Auth{User: "USER-cc-us", Password: "PASS"}, proxy.Direct)
if err != nil { panic(err) }
tr := &http.Transport{Dial: dialer.Dial}
client := &http.Client{Transport: tr, Timeout: 45 * time.Second}PHP: cURL#
<?php
$ch = curl_init("https://api.ipify.org");
curl_setopt_array($ch, [
CURLOPT_PROXY => "http://res.proxy-cyber.com:9000",
CURLOPT_PROXYUSERPWD => "USER-cc-us:PASS",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 15,
CURLOPT_TIMEOUT => 45,
CURLOPT_FORBID_REUSE => true, // new exit per call on the rotating gateway
]);
echo curl_exec($ch);
// SOCKS5 with remote DNS
curl_setopt($ch, CURLOPT_PROXY, "res.proxy-cyber.com:9001");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);PHP: Gizzle#
<?php
use GuzzleHttp\Client;
$sticky = "http://USER-cc-de-city-berlin-sid-cart42-ttl-15m:PASS@res.proxy-cyber.com:9000";
$client = new Client(['proxy' => $sticky, 'timeout' => 45, 'connect_timeout' => 15]);
$r = $client->get('https://api.ipify.org');
echo $r->getBody();Тексеру тізімі#
- Тағайындалған шлюз оны қолдайтын әрбір тәуелсіз жұмыс процесі үшін бөлек сеанс идентификаторын пайдаланыңыз. Байланыс мәліметтері бойынша рұқсат етілген уақыт пен орын параметрлерін растаңыз.Тұрғын құрылғы сұралған ұзақтығынан бұрын ажыратылуы мүмкін; жабысқақ сеанс бірнеше күн бойы бірдей IP кепілдігі емес. Бекітілген мекенжай үшін арнайы статикалық өнімді салыстырыңыз.
- Шығу түріне дейін масштабталған уақыт; көлік қателеріне қарсы бір әрекет.
- Ешқашан прокси-URL-ке кірмеңіз: онда құпия сөз бар. Оның орнына сеанс идентификаторына кіріңіз.
Адамдар қоятын сұрақтар#
Go's http.ProxyFrom Environment жұмыс істейді ме?
Иә: HTTPS_PROXY және HTTP_PROXI кілт прокси URL мекенжайымен экспорттаңыз және Көліктің прокси функциясы ретінде http.ProxyFrom Environment пайдаланыңыз. NO_PROXy жергілікті хосттарды алып тастайды.