Skip to main content

HTTP proxy sample

Known as HTTP Forward proxy

With auth

package main

import (
"io"
"log"
"net"
"time"

"github.com/Z3NTL3/proxifier"
)

func main() {
httpClient := proxifier.HTTPClient{
Auth: proxifier.Auth{
Username: "hello",
Password: "world",
},
}

conn, err := httpClient.PROXY("https://httpbin.org/ip", proxifier.Context{
Resolver: net.ParseIP("85.209.2.126"),
Port: 4444,
}, time.Second*10)
if err != nil {
log.Fatal(err)
}
defer conn.Close()

resp, err := io.ReadAll(conn)
if err != nil {
log.Fatal(err)

}

log.Println(string(resp))
}
/*
RESULT:

~\Documents\sockstests via 🐹 v1.22.2 took 3s
❯ go run .
2024/05/17 18:35:41 HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Fri, 17 May 2024 16:35:41 GMT
Content-Type: application/json
Content-Length: 31
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

{
"origin": "85.209.2.126"
}
*/

Without auth

package main

import (
"io"
"log"
"net"
"time"

"github.com/Z3NTL3/proxifier"
)

func main() {
httpClient := proxifier.HTTPClient{}

conn, err := httpClient.PROXY("https://httpbin.org/ip", proxifier.Context{
Resolver: net.ParseIP("85.209.2.126"),
Port: 4444,
}, time.Second*10)
if err != nil {
log.Fatal(err)
}
defer conn.Close()

resp, err := io.ReadAll(conn)
if err != nil {
log.Fatal(err)

}

log.Println(string(resp))
}
/*
RESULT:

~\Documents\sockstests via 🐹 v1.22.2 took 3s
❯ go run .
2024/05/17 18:35:41 HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Fri, 17 May 2024 16:35:41 GMT
Content-Type: application/json
Content-Length: 31
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

{
"origin": "85.209.2.126"
}
*/