एकीकरण · मध्यवर्ती

Go और PHP में प्रॉक्सी: नेट /http ट्रांसपोर्ट, x/net/proxy, cURL और Guzzle

Go और PHP में HTTP या एक प्रॉक्सी को स्पष्ट रूप से कॉन्फ़िगर करें, लॉग से क्रेडेंशियल्स को बाहर रखें, और टाइमआउट सेट करें। उदाहरण http.Transport, cURL और Guzzle को कवर करते हैं; गेटवे सेटिंग्स नियंत्रण जो क्लाइंट को प्राप्त करता है।

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

कनेक्शन का पुन: उपयोग और आईपी असाइनमेंट अलग-अलग नियंत्रण हैं। एक ग्राहक सत्र सॉकेट का पुन: उपयोग करता है; केवल निर्दिष्ट गेटवे घूर्णन और चिपचिपा सत्र व्यवहार को निर्धारित करता है। अपनी सेवा के साथ आपूर्ति किए गए सत्र मापदंडों का उपयोग करें, और कई अनुरोधों पर निकास को सत्यापित करें। एक सॉकेट को बंद करना या कनेक्शन भेजना: बंद एक अलग आईपी की गारंटी नहीं देता है।

जाओ: प्रति अनुरोध प्रॉक्सी का चयन#

जाओ
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: 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: Guzzle#

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();

चेकलिस्ट#

  • प्रत्येक स्वतंत्र वर्कफ़्लो के लिए एक अलग सत्र पहचानकर्ता का उपयोग करें, जहां निर्दिष्ट गेटवे इसका समर्थन करता है। अपने कनेक्शन विवरण में अनुमति अवधि और स्थान मापदंडों की पुष्टि करें। अनुरोध अवधि से पहले एक आवासीय उपकरण डिस्कनेक्ट कर सकता है; एक चिपचिपा सत्र दिनों के लिए उसी आईपी की गारंटी नहीं है। एक निश्चित पते के लिए, एक समर्पित स्थिर उत्पाद की तुलना करें।
  • टाइमआउट्स ने निकास प्रकार को बढ़ाया; परिवहन त्रुटियों पर एक रिट्रीट।
  • कभी भी प्रॉक्सी यूआरएल लॉग इन करें: इसमें पासवर्ड शामिल है। इसके बजाय सत्र आईडी लॉग करें।

सवाल पूछो#

क्या Go's http.ProxyFromEnvironment work?

हाँ: निर्यात HTTPS PROXY और HTTP PROXY Proxy Cyber यूआरएल के साथ और परिवहन के प्रॉक्सी समारोह के रूप में HTTP.ProxyFromEnvironment का उपयोग करें। NO PROXY स्थानीय होस्ट को बाहर करता है।

आपका खाता

अपने प्रॉक्सी को एक खाते में प्रबंधित करें

नेटवर्क, प्लेस ऑर्डर की तुलना करें और एक डैशबोर्ड से अपने शेष और समर्थन अनुरोधों का पालन करें। हमारी टीम भुगतान की समीक्षा करती है और वितरण के बाद कनेक्शन विवरण प्रदान करती है।

खाता बनाएँ