SyzProxy

package module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 5, 2022 License: GPL-3.0 Imports: 11 Imported by: 0

README

SyzProxy

A simple and modern proxy management library for Go

Table of Contents

Installation

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ProxyTypes = []string{"http", "socks5", "socks4", "socks4a"}
)

Functions

func ClientFromProxy

func ClientFromProxy(proxy Proxy, proxyType string) (*http.Client, error)

ClientFromProxy returns a http.Client with the transport set Proxy types are http, socks4, socks4a, socks5

func ClientFromTransport

func ClientFromTransport(transport *http.Transport) *http.Client

ClientFromTransport returns a http.Client with the transport set

func TransportFromProxy

func TransportFromProxy(proxy Proxy, proxyType string) (*http.Transport, error)

TranportFromProxy returns a http.Transport with the proxy set Proxy types are http, socks4, socks4a, socks5

Types

type Proxy

type Proxy struct {
	// contains filtered or unexported fields
}

func ReturnProxy

func ReturnProxy(host string, port int, username string, password string) Proxy

ReturnProxy returns a filled Proxy Struct If the username and password are empty, it will return a proxy without authentication

type ProxyManager

type ProxyManager struct {
	ProxyList []Proxy
	ProxyType string
}

func NewProxyManager

func NewProxyManager() ProxyManager

NewProxyManager returns a new ProxyManager

func (*ProxyManager) GetRandomProxy

func (pm *ProxyManager) GetRandomProxy() Proxy

GetRandomProxy returns a random proxy from the list

func (*ProxyManager) GetRandomTransport

func (pm *ProxyManager) GetRandomTransport() (*http.Transport, error)

GetRandomTransport returns a transport using the GetRandomProxy function

func (*ProxyManager) LoadFromFile

func (pm *ProxyManager) LoadFromFile(filename string, proxyType string) (int, error)

LoadFromFile loads a list of proxies from a file Proxy types are http, socks4, socks4a, socks5

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL