Categorygithub.com/bdandy/go-socks4
modulepackage
1.2.3
Repository: https://github.com/bdandy/go-socks4.git
Documentation: pkg.go.dev

# 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