From 59330cb3a2dc988d5ccfc7081c0da56d8a18cade Mon Sep 17 00:00:00 2001 From: serogaq <36307024+serogaq@users.noreply.github.com> Date: Wed, 13 Nov 2024 12:47:52 +0300 Subject: [PATCH] 2 / GetLogsSniffedDomains --- logger/logger.go | 17 +++++++++++++++++ web/controller/server.go | 7 +++++++ web/service/server.go | 9 +++++++++ 3 files changed, 33 insertions(+) diff --git a/logger/logger.go b/logger/logger.go index 35c5c0ac..2d23abaf 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -4,6 +4,7 @@ import ( "fmt" "os" "time" + "strings" "github.com/op/go-logging" ) @@ -126,3 +127,19 @@ func GetLogs(c int, level string) []string { } return output } + +func GetLogsSniffedDomains(c int) []string { + var output []string + logLevel, _ := logging.LogLevel("info") + + for i := len(logBuffer) - 1; i >= 0 && len(output) <= c; i-- { + if logBuffer[i].level <= logLevel && strings.Contains(logBuffer[i].log, "sniffed domain: ") { + index := strings.LastIndex(log, ": ") + if index != -1 { + domain := log[index+2:] + output = append(output, fmt.Sprintf("%s - %s", logBuffer[i].time, domain)) + } + } + } + return output +} diff --git a/web/controller/server.go b/web/controller/server.go index fc7756ba..4e2d752d 100644 --- a/web/controller/server.go +++ b/web/controller/server.go @@ -45,6 +45,7 @@ func (a *ServerController) initRouter(g *gin.RouterGroup) { g.POST("/restartXrayService", a.restartXrayService) g.POST("/installXray/:version", a.installXray) g.POST("/logs/:count", a.getLogs) + g.GET("/logs-sniffed/:count", a.getLogsSniffedDomains) g.POST("/getConfigJson", a.getConfigJson) g.GET("/getDb", a.getDb) g.POST("/importDB", a.importDB) @@ -125,6 +126,12 @@ func (a *ServerController) getLogs(c *gin.Context) { jsonObj(c, logs, nil) } +func (a *ServerController) getLogsSniffedDomains(c *gin.Context) { + count := c.Param("count") + logs := a.serverService.GetLogsSniffedDomains(count) + jsonObj(c, logs, nil) +} + func (a *ServerController) getConfigJson(c *gin.Context) { configJson, err := a.serverService.GetConfigJson() if err != nil { diff --git a/web/service/server.go b/web/service/server.go index eab5d700..63158252 100644 --- a/web/service/server.go +++ b/web/service/server.go @@ -442,6 +442,15 @@ func (s *ServerService) GetLogs(count string, level string, syslog string) []str return lines } +func (s *ServerService) GetLogsSniffedDomains(count string) []string { + c, _ := strconv.Atoi(count) + var lines []string + + lines = logger.GetLogsSniffedDomains(c) + + return lines +} + func (s *ServerService) GetConfigJson() (interface{}, error) { config, err := s.xrayService.GetXrayConfig() if err != nil {