Hợp nhất · can thiệp

Proxies in Go and PHP: net/htp Transport, x/net/pry, cURL và Gazzle

Cấu hình một proxy HTTP hay SOCKS một cách rõ ràng trong Go và PHP, giữ proxy trong bản ghi và đặt thời hạn. Ví dụ này bao gồm thư mục http.Transport, cURL và Gazzle; thiết lập cửa ra vào mà trình khách nhận được.

2 phút đọc 6 phần Đã xem xét Ban biên tập Proxy Cyber

Tới: http.Transport#

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

Dùng lại thông tin kết nối và địa chỉ IP là điều khiển khác nhau. Một phiên chạy khách sử dụng lại ổ cắm; chỉ cửa đã gán quyết định độ xoay và cách gọi dính. Dùng tham số phiên chạy được cung cấp bằng dịch vụ của bạn, và kiểm tra lối thoát qua vài yêu cầu. Đóng ổ cắm hoặc gửi: đóng kết nối không bảo đảm một IP khác.

Đi: chọn proxy cho mỗi yêu cầu#

Đi
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#

Đi
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);

XUzzle#

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

Danh sách kiểm tra#

  • Dùng bộ nhận diện phiên chạy riêng cho mỗi luồng làm việc độc lập, nơi mà cổng được chỉ định hỗ trợ nó. Xác nhận khoảng thời gian và thông số vị trí cho phép trong chi tiết kết nối của bạn. Một thiết bị cư trú có thể ngắt kết nối trước khi yêu cầu; một phiên chạy dính không phải là bảo đảm cùng một IP trong ngày. Đối với địa chỉ cố định, hãy so sánh một sản phẩm tĩnh đã đóng.
  • Thời hạn được tỷ lệ đến loại thoát; một lần thử lại khi gặp lỗi vận chuyển.
  • Không bao giờ đăng nhập địa chỉ URL proxy: nó chứa mật khẩu. Ghi lưu tên phiên chạy.

Người ta thắc mắc#

Công việc của Go's http.Proxy From Environment?

Có: xuất khẩu HTTPS PROXY và HTTP PROXY với URL proxy phím và sử dụng http.Proxy FromEnvironation dạng chức năng proxy giao thông. NO PXY out host local hosts.

Tài khoản của bạn

Quản lý giấy proxy của bạn trong một tài khoản

So sánh các mạng lưới, thứ tự đặt và làm theo yêu cầu và hỗ trợ của bạn từ một bảng điều khiển.

Tạo tài khoản