294 lines
8.4 KiB
Markdown
294 lines
8.4 KiB
Markdown
# ProxyGonanza
|
|
[![GoDoc](https://godoc.org/git.tcp.direct/kayos/proxygonanza?status.svg)](https://godoc.org/git.tcp.direct/kayos/proxygonanza)
|
|
[![Go Report Card](https://goreportcard.com/badge/github.com/yunginnanet/proxygonanza)](https://goreportcard.com/report/github.com/yunginnanet/proxygonanza)
|
|
|
|
# Table of Contents
|
|
|
|
1. [ProxyGonanza](#proxygonanza)
|
|
1. [Import Path](#import-path)
|
|
1. [Constants and Variables](#constants-and-variables)
|
|
1. [API Types](#api-types)
|
|
1. [type AddAuthIPResponse](#type-addauthipresponse)
|
|
1. [type AuthIP](#type-authip)
|
|
1. [type AuthIPResponse](#type-authipresponse)
|
|
1. [type DelAuthIPResponse](#type-delauthipresponse)
|
|
1. [type Package](#type-package)
|
|
1. [type PackageDetails](#type-packagedetails)
|
|
1. [type PackageResponse](#type-packageresponse)
|
|
1. [type PackageStatistics](#type-packagestatistics)
|
|
1. [type UserPackage](#type-userpackage)
|
|
1. [Client](#client)
|
|
1. [type APIClient](#type-apiclient)
|
|
1. [Constructors](#constructors)
|
|
1. [func NewAPIClient](#func--newapiclient)
|
|
1. [func NewCustomClient](#func--newcustomclient)
|
|
1. [Methods](#methods)
|
|
1. [func (*APIClient) AddAuthIP](#func-apiclient-addauthip)
|
|
1. [func (*APIClient) AddCurrentIPtoAllPackages](#func-apiclient-addcurrentiptoallpackages)
|
|
1. [func (*APIClient) DeleteAllAuthIPs](#func-apiclient-deleteallauthips)
|
|
1. [func (*APIClient) DeleteAuthIPByID](#func-apiclient-deleteauthipbyid)
|
|
1. [func (*APIClient) DeleteAuthIPByIP](#func-apiclient-deleteauthipbyip)
|
|
1. [func (*APIClient) DeleteOtherAuthIPs](#func-apiclient-deleteotherauthips)
|
|
1. [func (*APIClient) GetAllSOCKSIPsAndPorts](#func-apiclient-getallsocksipsandports)
|
|
1. [func (*APIClient) GetAuthIPs](#func-apiclient-getauthips)
|
|
1. [func (*APIClient) GetPackageSOCKS](#func-apiclient-getpackagesocks)
|
|
1. [func (*APIClient) GetProxyPackages](#func-apiclient-getproxypackages)
|
|
|
|
## Import Path
|
|
|
|
`import "git.tcp.direct/kayos/proxygonanza"`
|
|
|
|
## Constants and Variables
|
|
|
|
```go
|
|
const (
|
|
APIBaseURL = "https://proxybonanza.com/api/v1/"
|
|
)
|
|
```
|
|
|
|
## API Types
|
|
|
|
### type AddAuthIPResponse
|
|
|
|
```go
|
|
type AddAuthIPResponse struct {
|
|
Success bool `json:"success"`
|
|
Message string `json:"message"`
|
|
Data struct {
|
|
ID int `json:"id"`
|
|
} `json:"data"`
|
|
}
|
|
```
|
|
|
|
AddAuthIPResponse represents an API response from proxybonanza.com.
|
|
|
|
### type AuthIP
|
|
|
|
```go
|
|
type AuthIP struct {
|
|
UserpackageID int `json:"userpackage_id"`
|
|
ID interface{} `json:"id"`
|
|
IP string `json:"ip"`
|
|
}
|
|
```
|
|
|
|
AuthIP is an IP address authorized to use the proxies in the related package.
|
|
|
|
### type AuthIPResponse
|
|
|
|
```go
|
|
type AuthIPResponse struct {
|
|
Success bool `json:"success"`
|
|
Message string `json:"message"`
|
|
AuthIPData []AuthIP `json:"data"`
|
|
Pages pagination `json:"pagination"`
|
|
}
|
|
```
|
|
|
|
AuthIPResponse represents an API response from proxybonanza.com.
|
|
|
|
### type DelAuthIPResponse
|
|
|
|
```go
|
|
type DelAuthIPResponse struct {
|
|
Success bool `json:"success"`
|
|
}
|
|
```
|
|
|
|
DelAuthIPResponse represents an API response from proxybonanza.com.
|
|
|
|
### type Package
|
|
|
|
```go
|
|
type Package struct {
|
|
ID int
|
|
AuthIPs []AuthIP
|
|
AllTimeStats PackageStatistics
|
|
HourlyStats map[time.Time]PackageStatistics
|
|
}
|
|
```
|
|
|
|
Package contains what we know about a particular proxybonanza package.
|
|
|
|
### type PackageDetails
|
|
|
|
```go
|
|
type PackageDetails struct {
|
|
Name string `json:"name"`
|
|
Bandwidth int64 `json:"bandwidth"`
|
|
Price interface{} `json:"price"`
|
|
HowmanyIPs int `json:"howmany_ips"`
|
|
PricePerGig interface{} `json:"price_per_gig"`
|
|
PackageType string `json:"package_type"`
|
|
HowmanyAuthips int `json:"howmany_authips"`
|
|
IPType int `json:"ip_type"`
|
|
PriceUserFormatted string `json:"price_user_formatted"`
|
|
}
|
|
```
|
|
|
|
PackageDetails represents an API response from proxybonanza.com containing proxy
|
|
package information.
|
|
|
|
### type PackageResponse
|
|
|
|
```go
|
|
type PackageResponse struct {
|
|
Success bool `json:"success"`
|
|
Message string `json:"message"`
|
|
PackageData []UserPackage `json:"data"`
|
|
Pages pagination `json:"pagination"`
|
|
}
|
|
```
|
|
|
|
PackageResponse represents an API response from proxybonanza.com containing
|
|
proxy package information.
|
|
|
|
### type PackageStatistics
|
|
|
|
```go
|
|
type PackageStatistics struct {
|
|
UserpackageID int `json:"userpackage_id"`
|
|
Date string `json:"date"`
|
|
BndHTTP int `json:"bnd_http"`
|
|
ConnHTTP int `json:"conn_http"`
|
|
BndSocks int `json:"bnd_socks"`
|
|
ConnSocks int `json:"conn_socks"`
|
|
BndTotal int `json:"bnd_total"`
|
|
ConnTotal int `json:"conn_total"`
|
|
}
|
|
```
|
|
|
|
PackageStatistics represents the statistics for the related proxy package.
|
|
|
|
### type UserPackage
|
|
|
|
```go
|
|
type UserPackage struct {
|
|
ID int `json:"id"`
|
|
CustomName interface{} `json:"custom_name"`
|
|
Login string `json:"login"`
|
|
Password string `json:"password"`
|
|
Expires time.Time `json:"expires"`
|
|
Bandwidth int64 `json:"bandwidth"`
|
|
|
|
LowBanwidthNotificationPercent int `json:"low_banwidth_notification_percent"`
|
|
Package PackageDetails `json:"package"`
|
|
BandwidthGb float64 `json:"bandwidth_gb"`
|
|
AdditionalBandwidthGb float64 `json:"additional_bandwidth_gb"`
|
|
BandwidthPercentLeftHuman string `json:"bandwidth_percent_left_human"`
|
|
ExpirationDateHuman string `json:"expiration_date_human"`
|
|
Name string `json:"name"`
|
|
}
|
|
```
|
|
|
|
UserPackage represents a proxy package purchased from proxybonanza.com.
|
|
|
|
## Client
|
|
|
|
### type APIClient
|
|
|
|
```go
|
|
type APIClient struct {
|
|
Key string
|
|
KnownPackages map[int]PackageDetails
|
|
Debug bool
|
|
}
|
|
```
|
|
|
|
APIClient is a client for ProxyBonanza.com.
|
|
|
|
### Constructors
|
|
|
|
#### func NewAPIClient
|
|
|
|
```go
|
|
func NewAPIClient(key string) *APIClient
|
|
```
|
|
NewAPIClient instantiates a proxybonanza.com API client with the given key using
|
|
golang's default http client.
|
|
|
|
#### func NewCustomClient
|
|
|
|
```go
|
|
func NewCustomClient(key string, client *http.Client) *APIClient
|
|
```
|
|
NewCustomClient insantiates a proxybonanza API client with the given key and the
|
|
given http.Client.
|
|
|
|
### Methods
|
|
|
|
#### func (*APIClient) AddAuthIP
|
|
|
|
```go
|
|
func (api *APIClient) AddAuthIP(ip net.IP, packageID int) (AddAuthIPResponse, error)
|
|
```
|
|
AddAuthIP adds a new IP to the corresponding/provided proxy package ID.
|
|
|
|
#### func (*APIClient) AddCurrentIPtoAllPackages
|
|
|
|
```go
|
|
func (api *APIClient) AddCurrentIPtoAllPackages() (success int)
|
|
```
|
|
AddCurrentIPtoAllPackages adds your current WAN IP to all packages on your
|
|
account. It returns the amount of successful packages that it was applied to. It
|
|
will skip packages that are already using the current IP.
|
|
|
|
#### func (*APIClient) DeleteAllAuthIPs
|
|
|
|
```go
|
|
func (api *APIClient) DeleteAllAuthIPs() (int, error)
|
|
```
|
|
DeleteAllAuthIPs deletes all authenticaiton IPs from your account.
|
|
|
|
#### func (*APIClient) DeleteAuthIPByID
|
|
|
|
```go
|
|
func (api *APIClient) DeleteAuthIPByID(ipID int) (ok bool)
|
|
```
|
|
DeleteAuthIPByID deletes an authentication IP with the matching ID provided
|
|
|
|
#### func (*APIClient) DeleteAuthIPByIP
|
|
|
|
```go
|
|
func (api *APIClient) DeleteAuthIPByIP(ipa net.IP) (err error)
|
|
```
|
|
DeleteAuthIPByIP will iterate through all the authips on your account and delete
|
|
one that matches the given IP.
|
|
|
|
#### func (*APIClient) DeleteOtherAuthIPs
|
|
|
|
```go
|
|
func (api *APIClient) DeleteOtherAuthIPs() ([]int, error)
|
|
```
|
|
DeleteOtherAuthIPs deletes all authenticaiton IPs from your account's packages
|
|
that do not match your current IP address. Returns a slice of authentication IP
|
|
IDs that were deleted and any errors that occurred.
|
|
|
|
#### func (*APIClient) GetAllSOCKSIPsAndPorts
|
|
|
|
```go
|
|
func (api *APIClient) GetAllSOCKSIPsAndPorts() ([]string, error)
|
|
```
|
|
GetAllSOCKSIPsAndPorts will return a slice of IP:Port formatted proxy strings
|
|
|
|
#### func (*APIClient) GetAuthIPs
|
|
|
|
```go
|
|
func (api *APIClient) GetAuthIPs() ([]AuthIP, error)
|
|
```
|
|
GetAuthIPs gets all authentication IPs active on your account.
|
|
|
|
#### func (*APIClient) GetPackageSOCKS
|
|
|
|
```go
|
|
func (api *APIClient) GetPackageSOCKS(packageid int) ([]string, error)
|
|
```
|
|
GetPackageSOCKS returns a specified packages SOCKS5 proxies in host:port format.
|
|
|
|
#### func (*APIClient) GetProxyPackages
|
|
|
|
```go
|
|
func (api *APIClient) GetProxyPackages() ([]UserPackage, error)
|
|
```
|
|
GetProxyPackages gets current proxy packages from your account.
|