From 7e11ee98a99f21e8af89cc9cc1af4cddf3519e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Sun, 14 Apr 2024 16:55:35 +0800 Subject: [PATCH] =?UTF-8?q?TCP=E5=92=8CUDP=E4=B9=9F=E6=94=AF=E6=8C=81DAU?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/nodes/listener_tcp.go | 6 ++++++ internal/nodes/listener_udp.go | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/internal/nodes/listener_tcp.go b/internal/nodes/listener_tcp.go index ddc90d2..cd0661c 100644 --- a/internal/nodes/listener_tcp.go +++ b/internal/nodes/listener_tcp.go @@ -145,6 +145,12 @@ func (this *TCPListener) handleConn(server *serverconfigs.ServerConfig, conn net stats.SharedTrafficStatManager.Add(server.UserId, server.Id, "", 0, 0, 1, 0, 0, 0, 0, server.ShouldCheckTrafficLimit(), server.PlanId()) } + // DAU统计 + clientIP, _, parseErr := net.SplitHostPort(conn.RemoteAddr().String()) + if parseErr == nil { + stats.SharedDAUManager.AddIP(server.Id, clientIP) + } + originConn, err := this.connectOrigin(server.Id, serverName, server.ReverseProxy, conn.RemoteAddr().String()) if err != nil { _ = conn.Close() diff --git a/internal/nodes/listener_udp.go b/internal/nodes/listener_udp.go index c413f05..7c8d7cd 100644 --- a/internal/nodes/listener_udp.go +++ b/internal/nodes/listener_udp.go @@ -359,9 +359,9 @@ type UDPConn struct { isClosed bool } -func NewUDPConn(server *serverconfigs.ServerConfig, addr net.Addr, proxyListener UDPPacketListener, cm any, serverConn *net.UDPConn) *UDPConn { +func NewUDPConn(server *serverconfigs.ServerConfig, clientAddr net.Addr, proxyListener UDPPacketListener, cm any, serverConn *net.UDPConn) *UDPConn { var conn = &UDPConn{ - addr: addr, + addr: clientAddr, proxyListener: proxyListener, serverConn: serverConn, activatedAt: time.Now().Unix(), @@ -371,6 +371,12 @@ func NewUDPConn(server *serverconfigs.ServerConfig, addr net.Addr, proxyListener // 统计 if server != nil { stats.SharedTrafficStatManager.Add(server.UserId, server.Id, "", 0, 0, 1, 0, 0, 0, 0, server.ShouldCheckTrafficLimit(), server.PlanId()) + + // DAU统计 + clientIP, _, parseErr := net.SplitHostPort(clientAddr.String()) + if parseErr == nil { + stats.SharedDAUManager.AddIP(server.Id, clientIP) + } } // 处理ControlMessage @@ -392,7 +398,7 @@ func NewUDPConn(server *serverconfigs.ServerConfig, addr net.Addr, proxyListener if n > 0 { conn.activatedAt = time.Now().Unix() - _, writingErr := proxyListener.WriteTo(buffer[:n], cm, addr) + _, writingErr := proxyListener.WriteTo(buffer[:n], cm, clientAddr) if writingErr != nil { conn.isOk = false break