Go: 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))
}Bağlantı yeniden ve IP ataması farklı kontrollerdir. Bir müşteri oturumu tekrarlar soketler; sadece atanan ağ geçidi rotasyonu ve yapışkan-session davranışını belirler. Hizmetinizle sağlanan oturum parametreleri kullanın ve birkaç isteğin üzerinden çıkışı doğrulayın: Bir soketi kapat veya bağlantı gönder: yakın farklı bir IP garanti etmez.
Go: Talep başına proxy'yi seçme#
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))
},
}Go: shi5#
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: Guzzle#
<?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();Checklist#
- Her bağımsız iş için ayrı bir oturum tanımlayıcısı kullanın, atanan ağ geçidinin desteklediği yer. Bağlantı ayrıntılarınızda izin verilen süre ve yer parametrelerini onaylayın. Bir konut cihazı talep edilen süreden önce kesebilir; bir çubuk oturumu aynı IP'nin aynı zamanda belirli bir adres için bir garanti değildir, özel bir statik ürünle karşılaştırın.
- Zamanlar çıkış türüne ölçeklendi; ulaşım hataları üzerine bir yeniden deneme.
- URL proxy'sini asla giriş: şifreyi içeriyor. Oturumun yerine kayıt olun.
Soru: İnsanlar soruyor#
Go'nun http.Proxy FromEnvironment work?
Evet: HTTPS PROXY ve HTTP PROXY'i Anahtar Proxy URL ile ihraç edin ve http.ProxyFromEnvironment as the Transport's Proxy function. NO PROXY yerel hostları dışlayın.