Pergi: 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))
}Tugas penggunaan ulang dan IP tanpa sambungan adalah kontrol yang berbeda. Sesi klien menggunakan kembali soket; hanya gateway yang ditugaskan menentukan rotasi dan perilaku sesi lengket. Gunakan parameter sesi yang diberikan dengan layanan Anda, dan memverifikasi keluar atas beberapa permintaan. Menutup soket atau mengirim Sambungan: menutup tidak menjamin IP yang berbeda.
Pergi: memilih proksi per permintaan#
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: 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 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: Gemuk#
<?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();Daftar cek#
- Gunakan pengenalpasti sesi yang berbeda untuk setiap alur kerja independen, di mana gateway yang ditugaskan mendukungnya. Konfirmasi durasi dan parameter lokasi yang diizinkan dalam rincian koneksi Anda. Sebuah perangkat pemukiman dapat memutuskan sebelum durasi yang diminta; sesi lengket bukan jaminan IP yang sama selama berhari-hari. Untuk alamat tetap, bandingkan produk statik berdedikasi.
- Kehabisan masa kemuatan ke skala ke tipe keluar; satu coba lagi pada error transportasi.
- Jangan pernah log URL proksi: ia mengandungi kata sandi. Logkan id sesi sebagai gantinya.
Pertanyaan orang#
Apakah Go karya http.ProxyFromEnvironment?
Ya: ekspor HTTPS PROXY dan HTTP PROXY dengan URL Proxy Cyber dan gunakan http.ProxyFromEnvironment sebagai fungsi Proksi Transport. NO PROXY mengecualikan host lokal.