mirror of
https://github.com/Monibuca/engine.git
synced 2025-10-07 01:22:51 +08:00
sysInfo增加LocalIP字段
This commit is contained in:
18
http.go
18
http.go
@@ -2,7 +2,6 @@ package engine
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"net"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -51,22 +50,7 @@ func (conf *GlobalConfig) API_stream(rw http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (conf *GlobalConfig) API_sysInfo(rw http.ResponseWriter, r *http.Request) {
|
func (conf *GlobalConfig) API_sysInfo(rw http.ResponseWriter, r *http.Request) {
|
||||||
var IP []string
|
if err := json.NewEncoder(rw).Encode(&SysInfo); err != nil {
|
||||||
if addrs, err := net.InterfaceAddrs(); err == nil {
|
|
||||||
for _, address := range addrs {
|
|
||||||
if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
|
|
||||||
if ipnet.IP.To4() != nil {
|
|
||||||
IP = append(IP, ipnet.IP.String())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := json.NewEncoder(rw).Encode(&struct {
|
|
||||||
Version string
|
|
||||||
StartTime string
|
|
||||||
IP []string
|
|
||||||
}{Engine.Version, StartTime.Format("2006-01-02 15:04:05"), IP}); err != nil {
|
|
||||||
http.Error(rw, err.Error(), http.StatusInternalServerError)
|
http.Error(rw, err.Error(), http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
17
main.go
17
main.go
@@ -5,10 +5,12 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
@@ -21,11 +23,15 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
SysInfo struct {
|
||||||
|
StartTime time.Time //启动时间
|
||||||
|
LocalIP string
|
||||||
|
Version string
|
||||||
|
}
|
||||||
ExecPath = os.Args[0]
|
ExecPath = os.Args[0]
|
||||||
ExecDir = filepath.Dir(ExecPath)
|
ExecDir = filepath.Dir(ExecPath)
|
||||||
// ConfigRaw 配置信息的原始数据
|
// ConfigRaw 配置信息的原始数据
|
||||||
ConfigRaw []byte
|
ConfigRaw []byte
|
||||||
StartTime time.Time //启动时间
|
|
||||||
Plugins = make(map[string]*Plugin) // Plugins 所有的插件配置
|
Plugins = make(map[string]*Plugin) // Plugins 所有的插件配置
|
||||||
EngineConfig = &GlobalConfig{
|
EngineConfig = &GlobalConfig{
|
||||||
Engine: config.Global,
|
Engine: config.Global,
|
||||||
@@ -37,9 +43,16 @@ var (
|
|||||||
apiList []string //注册到引擎的API接口列表
|
apiList []string //注册到引擎的API接口列表
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
if conn, err := net.Dial("udp", "114.114.114.114:80"); err == nil {
|
||||||
|
SysInfo.LocalIP, _, _ = strings.Cut(conn.LocalAddr().String(), ":")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Run 启动Monibuca引擎,传入总的Context,可用于关闭所有
|
// Run 启动Monibuca引擎,传入总的Context,可用于关闭所有
|
||||||
func Run(ctx context.Context, configFile string) (err error) {
|
func Run(ctx context.Context, configFile string) (err error) {
|
||||||
StartTime = time.Now()
|
SysInfo.StartTime = time.Now()
|
||||||
|
SysInfo.Version = Engine.Version
|
||||||
Engine.Context = ctx
|
Engine.Context = ctx
|
||||||
if _, err := os.Stat(configFile); err != nil {
|
if _, err := os.Stat(configFile); err != nil {
|
||||||
configFile = filepath.Join(ExecDir, configFile)
|
configFile = filepath.Join(ExecDir, configFile)
|
||||||
|
Reference in New Issue
Block a user