# README
go-socks4
Socks4 implementation for Go, compatible with net/proxy.
Features
socks4
socks4a
Usage
Just import _ "github.com/bdandy/go-socks4"
to add socks4
support
package main
import (
"errors"
"log"
"net/url"
_ "github.com/bdandy/go-socks4"
"golang.org/x/net/proxy"
)
func main() {
addr, _ := url.Parse("socks4://ip:port")
dialer, err := proxy.FromURL(addr, proxy.Direct)
conn, err := dialer.Dial("tcp", "google.com:80")
if err != nil {
// handle error
if errors.Is(err, socks4.ErrDialFailed) {
log.Printf("invalid proxy server %s", addr)
return
}
if errors.Is(err, socks4.ErrConnRejected) {
log.Printf("google.com:80: %s", err)
return
}
}
// use opened network connection
_ = conn
}
Tests
If you know proxy server to connect to tests should be running like this
go test -socks4.url=socks4://localhost:8080
# Constants
No description provided by the author
connection was rejected by proxy.
connection to socks4 server failed.
host dns resolving failed.
proxy requires valid ident.
proxy reply contains invalid data.
some i\o error happened.
provided addr should be in format host:port.
socks4 protocol supports only tcp/ip v4 connections.
# Variables
No description provided by the author
# Type aliases
No description provided by the author