Minagoroshi / SyzProxy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SyzProxy

A simple and modern proxy management library for Go

Table of Contents

Installation

go get github.com/minagoroshi/syzproxy@v0.1.2

Examples

Single/Rotating Proxy

package main

import (
	"github.com/Minagoroshi/SyzProxy"
	"io/ioutil"
	"log"
	"time"
)

func main() {

	// If your proxy does not require authentication leave the username and password empty ("")
	proxyClient, err := SyzProxy.ClientFromProxy(SyzProxy.ReturnProxy("proxy.example.host", 12345, "username", "password"), "proxytype")
	if err != nil {
		log.Fatal(err)
	}
	proxyClient.Timeout = 10 * time.Second

	resp, err := proxyClient.Get("https://httpbin.org/ip")
	if err != nil {
		log.Fatalln("Error getting response: ", err)
	}

	defer resp.Body.Close()

	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatalln("Error reading body: ", err)
	}

	log.Println(string(body))
}

Proxy List

package main

import (
	"github.com/Minagoroshi/SyzProxy"
	"log"
	"net/http"
)

func main() {
	PManager := &SyzProxy.ProxyManager{}
	num, err := PManager.LoadFromFile("proxies.txt", "http")
	if err != nil {
		log.Fatal(err)
	}
	log.Println("Loaded", num, "proxies")

	transport, err := PManager.GetRandomTransport()
	if err != nil {
		log.Fatal(err)
	}
	proxyClient := http.Client{Transport: transport}

	resp, err := proxyClient.Get("https://httpbin.org/ip")
	if err != nil {
		log.Fatalln("Error getting response: ", err)
	}

	defer resp.Body.Close()

	log.Println(resp)
}

Documentation

https://pkg.go.dev/github.com/Minagoroshi/SyzProxy#section-readme

About

License:GNU General Public License v3.0


Languages

Language:Go 100.0%