diff --git a/cmd/npc/npc.go b/cmd/npc/npc.go index d17c348..f74d6fb 100644 --- a/cmd/npc/npc.go +++ b/cmd/npc/npc.go @@ -37,6 +37,7 @@ var ( debug = flag.Bool("debug", true, "npc debug") pprofAddr = flag.String("pprof", "", "PProf debug addr (ip:port)") stunAddr = flag.String("stun_addr", "stun.stunprotocol.org:3478", "stun server address (eg:stun.stunprotocol.org:3478)") + ver = flag.Bool("version", false, "show current version") ) func main() { @@ -44,6 +45,10 @@ func main() { logs.Reset() logs.EnableFuncCallDepth(true) logs.SetLogFuncCallDepth(3) + if *ver { + common.PrintVersion() + return + } if *logPath == "" { *logPath = common.GetNpcLogPath() } diff --git a/cmd/nps/nps.go b/cmd/nps/nps.go index 0f39e76..a805d62 100644 --- a/cmd/nps/nps.go +++ b/cmd/nps/nps.go @@ -28,11 +28,16 @@ import ( var ( level string + ver = flag.Bool("version", false, "show current version") ) func main() { flag.Parse() // init log + if *ver { + common.PrintVersion() + return + } if err := beego.LoadAppConfig("ini", filepath.Join(common.GetRunPath(), "conf", "nps.conf")); err != nil { log.Fatalln("load config file error", err.Error()) } diff --git a/docs/run.md b/docs/run.md index ca1f323..788ba35 100644 --- a/docs/run.md +++ b/docs/run.md @@ -32,6 +32,11 @@ 如果需要注册到系统服务可查看[注册到系统服务](/use?id=注册到系统服务) +## 版本检查 +- 对客户端以及服务的均可以使用参数`-version`打印版本 +- `nps -version`或`./nps -version` +- `npc -version`或`./npc -version` + ## 配置 - 客户端连接后,在web中配置对应穿透服务即可 - 可以查看[使用示例](/example) diff --git a/lib/common/util.go b/lib/common/util.go index dce3c8b..cb87daa 100755 --- a/lib/common/util.go +++ b/lib/common/util.go @@ -2,9 +2,11 @@ package common import ( "bytes" + "ehang.io/nps/lib/version" "encoding/base64" "encoding/binary" "errors" + "fmt" "html/template" "io" "io/ioutil" @@ -98,7 +100,7 @@ func Getverifyval(vkey string) string { } //Change headers and host of request -func ChangeHostAndHeader(r *http.Request, host string, header string, addr string,addOrigin bool) { +func ChangeHostAndHeader(r *http.Request, host string, header string, addr string, addOrigin bool) { if host != "" { r.Host = host } @@ -461,3 +463,7 @@ func GetServerIpByClientIp(clientIp net.IP) string { _, ip := GetIntranetIp() return ip } + +func PrintVersion() { + fmt.Printf("Version: %s\nCore version: %s\nSame core version of client and server can connect each other\n", version.VERSION, version.GetVersion()) +}