分类 golang 中的文章

go build命令在构建过程中会产生cache文件,这导致我修改的go代码不生效,如何保证go build命令忽略缓存文件

go build 命令在构建过程中会产生一些缓存文件,以加速后续的构建。但是当源代码发生变化时,这些缓存文件可能导致构建结果不正确。 要强制 go build 忽略缓存,可以使用以下两个方法: 使用 -a 或 –all 参数,这会强制重新构建所有的包: go build -a myprogram.go 删除缓存目录下的文件,默认情况下缓存目录是 $GOPATH/pkg。可以……

阅读全文

golang实现http,socks5代理扫描工具

本篇文章主要介绍使用golang实现一个代理扫描工具,目前主流常用的代理有http代理,和socks5代理两种模式,当然还有什么vpn,ss这种代理,不在本文讨论范畴,因为这些是加密的。 扫描出来可以被我们使用的代理,当然是不需要密码,免费的代理了。 首先是httpProxy的实现:……

阅读全文

golang之什么时候该用指针?

有时候看别人的go代码,发现他们有的在代码里面用了指针,有的不使用。 假设有个结构体类型叫做Person, 发现有些方法会用func methodA (*person Person)作为参数, 或者使用 func *(person Person) methodA()作为结构体自己的方法,也就是person这个结构体 可以直接调用methodA,但是用的是指针……

阅读全文

golang手把手实现tcp内网穿透代理(3)快速编码测试

差不多一个星期没更新这个系列了,今天难得有点时间,然后就开始写了点代码,上一章节讲了数据模型的定义和数据发送。这些都是一些准备,但是实际上距离真正实现tcp内网穿透代理还有些距离。 所以今天的章节是快速写一个例子,来测试一下tcp内网穿透代理。然后再规范代码,因为快速的demo测试……

阅读全文

golang手把手实现tcp内网穿透代理(1)

使用golang手把手实现一个tcp内网穿透代理工具。 描述一下应用场景,假设内网也就是我们的局域网,我们的电脑,pc运行了一个tomcat服务器,或者nginx服务器,又或者jdbc数据库,又或者python的服务器。 正常来说,我们是无法通过互联网达到访问局域网的电脑,pc的。 然……

阅读全文

golang手把手实现tcp内网穿透代理(2)

上一篇文章明确了我们需要做的东西,接下来就是实现具体功能 定义数据模型 首先是协议的定义,服务端和客户端需要一套协议来交互 协议的内容包括了,livecheck,以及发起tcp连接建立的请求,和响应的对象 假设内网里面需要暴露到外网的端口是5050,那么客户端需要请求服务端在外网建立一个……

阅读全文