V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
gamexg
V2EX  ›  Go 编程语言

写了一个 golang 代理库,支持 http、 https、socks4、socks4a、socks5,支持嵌套代理, API 尽量与 net 库相同。

  •  
  •   gamexg · 2015-11-10 13:57:43 +08:00 · 759 次点击
    这是一个创建于 3306 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    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))
    }
    
    3 条回复    2015-11-11 14:35:57 +08:00
    Comdex
        1
    Comdex  
       2015-11-10 23:11:54 +08:00
    mark
    wicast
        2
    wicast  
       2015-11-11 00:52:58 +08:00 via Android
    其实咱还是想说句……官方有包了(逃
    https://godoc.org/golang.org/x/net/proxy
    Nixus
        3
    Nixus  
       2015-11-11 14:35:57 +08:00
    mark
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2713 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:44 · PVG 23:44 · LAX 07:44 · JFK 10:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.