最近开始学习 golang ,写了个软件练习下。把其中代理部分独立出来,写成了个库。随着软件慢慢完成,这个库会慢慢完善。

现在已知的缺陷是 socks5 未提供 udp 支持, DialTimeout 未完成, LocalAddr 、 RemoteAddr 未完成,未实现 http.Transport 。

 

Github 库: https://github.com/GameXG/ProxyClient

 

代理示例:

package main

import (
    "fmt"
    "github.com/gamexg/proxyclient"
    "io"
    "io/ioutil"
)

func main() {
    p, err := proxyclient.NewProxyClient("socks5://127.0.0.1:5556")
    if err != nil {
        panic("创建代理客户端错误")
    }
    c, err := p.Dial("tcp", "www.google.com:80")
    if err != nil {
        panic("连接错误")
    }
    io.WriteString(c, "GET / HTTP/1.0\r\nHOST:www.google.com\r\n\r\n")
    b, err := ioutil.ReadAll(c)
    if err != nil {
        panic("读错误")
    }
    fmt.Print(string(b))
}

 

 

参考推荐:

Go语言下载、安装、配置、使用

Go语言的变量、函数、Socks5代理服务器

Groovy 安装与开发

Delphi 安装与开发

Perl 安装与开发

Ruby 安装与开发

Python scrapy 安装与开发

Python requests 安装与开发

Python pyspider 安装与开发

Python3 urllib 用法详解

PhantomJS 安装与开发

Node.js 安装与开发