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

2015-11-10 13:57:43 +08:00
 gamexg

最近开始学习 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))
}
777 次点击
所在节点    Go 编程语言
3 条回复
Comdex
2015-11-10 23:11:54 +08:00
mark
wicast
2015-11-11 00:52:58 +08:00
其实咱还是想说句……官方有包了(逃
https://godoc.org/golang.org/x/net/proxy
Nixus
2015-11-11 14:35:57 +08:00
mark

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/235045

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX