Интеграциялар· Аралық

Go және PHP-дегі проксилер: net/http Transport, x/net/proxy, cURL және Guzle

HTTP немесе SOCKS прокси-ді Go және PHP-де нақты теңшеңіз, тіркелгі деректерін журналдардан сақтаңыз және уақытты орнатыңыз. Мысалдар http.Transport, cURL және Guzle қамтиды; клиент алатын шлюз параметрлерін басқару.

2 мин оқыңыз 6 бөлім Қайта қаралған Редакциялық топ Proxy Cyber

Бару: 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
<?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
<?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 жергілікті хосттарды алып тастайды.

Сіздің шотыңыз

Барлық проксилерді бір аккаунттан басқарыңыз

Желілерді салыстырыңыз, тапсырыстарды орналастырыңыз және бір бақылау тақтасынан теңгерім мен қолдау сұрауларын орындаңыз.Біздің команда төлемдерді қарайды және жеткізілімнен кейін байланыс мәліметтерін ұсынады.

Аккаунт ашу