go实现socks5代理

文章分享myml 发表了文章 • 3 个评论 • 1111 次浏览 • 2016-10-28 22:10 • 来自相关话题

// go实现socks5代理 project main.go
package main

import (
    "bytes"
   ... 			查看全部
					
// go实现socks5代理 project main.go
package main

import (
"bytes"
"encoding/binary"
"fmt"
"io"
"log"
"net"
"time"
)

func main() {
log.SetFlags(log.Ltime | log.Lshortfile)
//监听1314端口
s, err := net.Listen("tcp", ":1314")
if err != nil {
log.Panic(err)
}
//接受客户端连接
for {
c, err := s.Accept()
if err != nil {
log.Panic(err)
}
go proxy(c)
}
}

func proxy(client net.Conn) {
defer client.Close()
var b [1024]byte

n, err := client.Read(b[:])
if err != nil {
log.Println(err)
return
}
var addr string
//sock5代理
if b[0] == 0x05 {
//回应确认代理
client.Write([]byte{0x05, 0x00})

n, err = client.Read(b[:])
if err != nil {
log.Println(err)
return
}
switch b[3] {
case 0x01:
//解析代理ip
type sockIP struct {
A, B, C, D byte
PORT uint16
}
sip := sockIP{}
if err := binary.Read(bytes.NewReader(b[4:n]), binary.BigEndian, &sip); err != nil {
log.Println("请求解析错误")
return
}
addr = fmt.Sprintf("%d.%d.%d.%d:%d", sip.A, sip.B, sip.C, sip.D, sip.PORT)
case 0x03:
//解析代理域名
host := string(b[5 : n-2])
var port uint16
err = binary.Read(bytes.NewReader(b[n-2:n]), binary.BigEndian, &port)
if err != nil {
log.Println(err)
return
}
addr = fmt.Sprintf("%s:%d", host, port)
}

server, err := net.DialTimeout("tcp", addr, time.Second*3)
if err != nil {
log.Println(err)
return
}
defer server.Close()
//回复确定代理成功
client.Write([]byte{0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
//转发
go io.Copy(server, client)
io.Copy(client, server)
}
}

go实现http代理

文章分享myml 发表了文章 • 4 个评论 • 775 次浏览 • 2016-10-28 22:04 • 来自相关话题

// golang代理 project main.go
package main

import (
    "bytes"
    "fm... 			查看全部
					
// golang代理 project main.go
package main

import (
"bytes"
"fmt"
"io"
"log"
"net"
"net/url"
"strings"
)

func main() {
log.SetFlags(log.Ltime | log.Lshortfile)
//监听1314端口
s, err := net.Listen("tcp", ":1314")
if err != nil {
log.Panic(err)
}
//接受客户端连接
for {
c, err := s.Accept()
if err != nil {
log.Panic(err)
}
go proxy(c)
}
}
func proxy(client net.Conn) {
defer client.Close()

var b [1024]byte
n, err := client.Read(b[:])
if err != nil {
log.Println(err)
return
}
var methon, host, addr string
fmt.Sscanf(string(b[:bytes.IndexByte(b[:], '\n')]), "%s%s", &methon, &host)
u, err := url.Parse(host)
if err != nil {
log.Println(err)
return
}
//http代理https流量
if u.Opaque == "443" {
addr = u.Scheme + ":" + u.Opaque
} else {
if u.Host != "" {
if strings.Index(u.Host, ":") == -1 {
addr = u.Host + ":80"
} else {
addr = u.Host
}
} else {
addr = u.Path
}
}

//连接远程服务器
s, err := net.Dial("tcp", addr)
if err != nil {
log.Println(err)
return
}
if methon == "CONNECT" {
fmt.Fprint(client, "HTTP/1.1 200 Connection established\r\nConnection: close\r\n\r\n")
} else {
s.Write(b[:n])
}
//进行转发
go io.Copy(s, client)
io.Copy(client, s)
}

Go在数据科学领域的文章

文章分享niugou 回复了问题 • 4 人关注 • 2 个回复 • 1330 次浏览 • 2016-10-28 21:30 • 来自相关话题

beego 怎么和 sphinx一起作为全文搜索使用

有问必答hlj2722 回复了问题 • 3 人关注 • 3 个回复 • 975 次浏览 • 2016-10-28 17:56 • 来自相关话题

针对新手的Go在线练习网站

文章分享zhqqqy 回复了问题 • 19 人关注 • 5 个回复 • 1565 次浏览 • 2016-10-28 14:28 • 来自相关话题

实时分布式消息系统NSQ

开源程序soul008 发表了文章 • 3 个评论 • 917 次浏览 • 2016-10-28 14:26 • 来自相关话题

最近,我写了一个实时分布式消息系统的演讲稿。鉴于技术的共享原则,发给大家以供参考和讨论。

查看全部

最近,我写了一个实时分布式消息系统的演讲稿。鉴于技术的共享原则,发给大家以供参考和讨论。












append一个element到一个正在读的slice是否安全

有问必答云开 回复了问题 • 6 人关注 • 6 个回复 • 1277 次浏览 • 2016-10-28 14:19 • 来自相关话题

golang 如何与 SOAP Service 进行通讯?

有问必答niugou 回复了问题 • 3 人关注 • 2 个回复 • 1243 次浏览 • 2016-10-28 13:31 • 来自相关话题

go 如何定时执行

有问必答zituocn 回复了问题 • 6 人关注 • 3 个回复 • 1158 次浏览 • 2016-10-28 11:58 • 来自相关话题

复杂的项目里可以使用.的方式导入包吗?

有问必答tt_0411 回复了问题 • 3 人关注 • 3 个回复 • 1151 次浏览 • 2016-10-28 00:04 • 来自相关话题

好玩的github项目-微信公众号爬虫 (只需设置代理, 一键可以爬取所有历史文章)

Go开源项目wwdyy 发表了文章 • 4 个评论 • 3685 次浏览 • 2016-10-27 23:32 • 来自相关话题

转自github用户:sundyli

使用方法: 运行后, 设置手机的代理为 本机ip 8899端口, 打开微信客户端, 点击任一公众号查看历史文章按钮, 即可爬取该公众号的所有历史文章(已经支持自动翻页爬取)

自定义输出源,... 查看全部

转自github用户:sundyli


使用方法: 运行后, 设置手机的代理为 本机ip 8899端口, 打开微信客户端, 点击任一公众号查看历史文章按钮, 即可爬取该公众号的所有历史文章(已经支持自动翻页爬取)


自定义输出源,实现Processor接口的Output方法即可, custom_output_server.go


微信会屏蔽频繁的请求,所以历史文章的翻页请求调用了Sleep()方法, 默认每个请求休眠50ms,可以根据实际情况自定义Processor覆盖此方法


一个简单的Demo simple_server.go


package main

import (
"log"
"net/http"

"github.com/sundy-li/wechat_spider"

"github.com/elazarl/goproxy"
)

func main() {
var port = "8899"
proxy := goproxy.NewProxyHttpServer()
//open it see detail logs
// wechat_spider.Verbose = true
proxy.OnResponse().DoFunc(
wechat_spider.ProxyHandle(wechat_spider.NewBaseProcessor()),
)
log.Println("server will at port:" + port)
log.Fatal(http.ListenAndServe(":"+port, proxy))

}

github链接:https://github.com/sundy-li/wechat_spider

关于fmt包优先打印类型Stringf方法结果的疑问?

有问必答stevewang 回复了问题 • 2 人关注 • 1 个回复 • 862 次浏览 • 2016-10-27 22:25 • 来自相关话题

‘话题描述’ 显示有问题?

站点反馈astaxie 回复了问题 • 2 人关注 • 1 个回复 • 936 次浏览 • 2016-10-27 21:27 • 来自相关话题

beego的orm针对postgresql的jsonb字段的查询

有问必答astaxie 回复了问题 • 3 人关注 • 2 个回复 • 1230 次浏览 • 2016-10-27 21:13 • 来自相关话题

钛核互动急招运维开发工程师的职位

招聘应聘lisa_zhao 发表了文章 • 1 个评论 • 538 次浏览 • 2016-10-27 17:44 • 来自相关话题

关于我们: 钛核互动成立于2014年10月,创始人团队在游戏行业从业平均达十年以上,做出了多款移动和家用机平台上的大作(永恒战士系列,口袋商业街系列,暴走!僵尸之城,蚯蚓战士等)。 钛核致力于建立平等,放权和高效的公司文化,招募和培养精英成员,营造宽松但... 查看全部

关于我们:
钛核互动成立于2014年10月,创始人团队在游戏行业从业平均达十年以上,做出了多款移动和家用机平台上的大作(永恒战士系列,口袋商业街系列,暴走!僵尸之城,蚯蚓战士等)。
钛核致力于建立平等,放权和高效的公司文化,招募和培养精英成员,营造宽松但有激情的开发氛围,追求在智能手机平台上制作出即叫好又叫座的精品游戏!


创始人团队:
 姚乐中,制作人,04年进入手机游戏开发领域,在美国硅谷工作多年后回到北京,将Glu北京工作室建设成业界一流的工作室,是Glu在中国和亚太成功的主要推动者;
 殷炜晔(Franc),美术总监,国际CG界最早成名的华人艺术家之一,十一年游戏领域美术经验, 原Glu北京工作室美术总监,个人作品集见 www.franc-art.com
 尹泽弘,技术总监,先后在Gameloft和Glu任职技术经理和技术总监,顶尖的全平台游戏技术专家,亚马逊云服务专家;
 王亮,首席工程师,十五年技术领域经验,系统优化,图形,网络领域的专家。


你将获得
你会和一群有多年经验却不忘初心,努力同时达到高制作水准和商业成功的人一起做游戏。
 产品和设计:我们在核心和休闲方向都获得过系列成功;
 技术:我们是国内最早使用Unity3D引擎的团队,在3D动作游戏领域有深厚积累,常年和Unity支持部门进行源码级交流;
 美术:你会和业界少有的在2D和3D领域,艺术和技术领域均有超强能力的美术大神Franc带领的美术团队合作。


我们希望找到
 热爱做游戏的人;
 有专长的综合性人才;
 自我驱动,用心做事的人;
 有信心建立伟大游戏公司的人。


系统运维工程师
任职要求:
 计算机相关专业本科以上学历,熟悉Linux系统自动化运维工作经验。
 负责日常的服务器软硬件、系统与应用平台管理,包括但不限于状态监控、升级、故障处理及优化等操作;
 负责系统日常管理流程的script编写,生产环境各种应用的服务器的安装、配置、管理、优化和监控;
 配合开发项目的环境搭建,与需求方就具体的技术点进行沟通等等。
 负责加固系统、优化系统,提升系统安全性或构建新的系统;
 英文阅读能力强
加分项:
 有任何云服务使用经验(AWS, 阿里云, 腾讯云,青云,UCloud)
 熟练使用shell、python、perl、php等脚本编程语言
 熟悉MongoDB, Redis, Mysql优先
 熟悉负载均衡技术、HA,精通服务器性能优化,有大流量服务器压力管理经验者优先。
 熟练配置防火墙、路由器、交换机等网络设备。有大型存储设备使用经验


工作地点:北京 朝阳 四惠
Email:lisa@taiyouxi.cn
lisa : 3348361317