Home >Backend Development >Golang >How to Create a Go SOCKS5 Client Using net/proxy?

How to Create a Go SOCKS5 Client Using net/proxy?

Susan Sarandon
Susan SarandonOriginal
2024-11-25 22:47:10718browse

How to Create a Go SOCKS5 Client Using net/proxy?

Creating a Go SOCKS5 Client

The net/proxy documentation lacks examples for utilizing its methods. This article focuses on implementing the SOCKS5 method. The SOCKS5 method has the following signature:

func SOCKS5(network, addr string, auth *Auth, forward Dialer) (Dialer, error)

This method takes various parameters:

  • network: The network to use, typically "tcp" for SOCKS5 over TCP.
  • addr: The address of the SOCKS5 proxy server, in the format "hostname:port".
  • auth: An optional Auth object for authentication (usually nil).
  • forward: A Dialer for forwarding the connection after the initial SOCKS5 handshake (defaults to Direct, which uses the default network dialer).

Setting Up a SOCKS5 Client

To set up a SOCKS5 client in Go, follow these steps:

  1. Create a Dialer for the SOCKS5 proxy using proxy.SOCKS5:

    dialSocksProxy, err := proxy.SOCKS5("tcp", "proxy_ip", nil, proxy.Direct)
  2. Initialize an HTTP transport with the SOCKS5 Dialer:

    tr := &http.Transport{Dial: dialSocksProxy.Dial}
  3. Create an HTTP client using the transport:

    myClient := &http.Client{
        Transport: tr,
    }

Using myClient, you can make HTTP requests through the SOCKS5 proxy.

The above is the detailed content of How to Create a Go SOCKS5 Client Using net/proxy?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn