实现socks5和http代理服务器

由于平时有些服务器木有外网权限,所以需要代理,网上找了一些代理工具,但都功能太多,很多用不上。因此决定自己写一个,参考了这个github项目FQ利器,完成了如下代码,够用就好。但是要想实现翻墙,还得自己写服务器实现加密才行额,加密的放出来就不保密了,哈哈。package main impor...

阅读更多

ssh登录二次验证

码云地址sshdTwoVerification介绍ssh登录二次验证 问题:现在很多人的Linux服务器可能会被攻击,只校验一次后台用户名密码登录变得不再保险。 当然大家首先要做的是修改ssh服务端口,不要用默认22,这样会增加攻击难度,但还是不保险。 方案1:使用ssh密钥文件登录...

阅读更多

巧妙运用golang的flag

1.发现平时比较习惯用go的flag包,但都是简单类型,有时候处理一些复杂类型时基本就是用简单类型然后内部搞一些操作检查。看了flag源码发现其实可以自定义类型的。请看下面代码:package main import ( "encoding/json" &...

阅读更多

notepad++使用nppexec格式化和压缩json文件

1.需求因为经常需要格式化json和压缩json,而notepad++的NPPJSONViewer.dll只能格式化json,没做压缩功能。我又不想每次打开一个网页去做这个事情这个网址。2.方案因此我研究了一个好用的方案,就是使用nppexec编写下面的脚本,每次执行时,set compact...

阅读更多

换掉你那不好用的exec.Command吧

问题:我遇到问题是命令行参数带引号和空格,使用原有的无论如何都返回错误,因此通过查看源码总结了下面的写法。// 更方便易用的exec.Command func Command(name, args string) (*exec.Cmd, error) { if filepath.Bas...

阅读更多

优雅的判断网络超时

package main import ( "log" "net" "net/http" "net/url" "time" ) func main()...

阅读更多

算出cron表达式接下来几次执行时间

1.使用cron库1.需要使用的go库:github.com/robfig/cron 2.具体使用方法可以参照例子使用,下面主要实现计算接下来几次cron表达式执行时间package main import ( "flag" "fmt"...

阅读更多

关于if data!=nil && len(data)!=n的思考

1.我经常看到在项目里面使用了下面这些代码if data != nil && len(data) != 0 { do } 我就在思考,为啥要多写一个判断data != nil 因此我测试了下面的代码,发现完全可以去掉第一个判断package main im...

阅读更多