feat: 跟踪模块

This commit is contained in:
TsMask
2023-10-26 18:25:38 +08:00
parent 79f30f2fc5
commit 61566927d6
4 changed files with 345 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
package service
// 通用请求 服务层接口
type ITcpdump interface {
// UPFTelnetStart UPF进行telnet抓包
UPFTelnet(neIp, cmdStr string) (string, error)
}

View File

@@ -0,0 +1,41 @@
package service
import (
"fmt"
"net"
"time"
netElementService "ems.agt/src/modules/net_element/service"
)
// 实例化服务层 TcpdumpImpl 结构体
var NewTcpdumpImpl = &TcpdumpImpl{
neInfoService: netElementService.NewNeInfoImpl,
}
// 通用请求 服务层处理
type TcpdumpImpl struct {
// 网元信息服务
neInfoService netElementService.INeInfo
}
// UPFTelnetStart UPF进行telnet抓包
func (s *TcpdumpImpl) UPFTelnet(neIp, cmdStr string) (string, error) {
// 创建TCP连接
conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", neIp, 5002))
if err != nil {
return "", err
}
defer conn.Close()
fmt.Fprintln(conn, cmdStr)
// 读取内容
time.Sleep(time.Duration(300) * time.Millisecond)
buf := make([]byte, 1024*8)
n, err := conn.Read(buf)
if err != nil {
return "", err
}
return string(buf[0:n]), nil
}