diff --git a/Common/Flag.go b/Common/Flag.go index bd5df7e..2da2867 100644 --- a/Common/Flag.go +++ b/Common/Flag.go @@ -152,8 +152,7 @@ func Flag(Info *HostInfo) { // ═════════════════════════════════════════════════ flag.StringVar(&Shellcode, "sc", "", GetText("flag_shellcode")) flag.StringVar(&Language, "lang", "zh", GetText("flag_language")) - flag.StringVar(&ApiAddr, "api", "", GetText("flag_api")) - flag.StringVar(&SecretKey, "secret", "", GetText("flag_api_key")) + // 解析命令行参数 parseCommandLineArgs() diff --git a/RPC/buf.gen.yaml b/Remote/buf.gen.yaml similarity index 100% rename from RPC/buf.gen.yaml rename to Remote/buf.gen.yaml diff --git a/RPC/buf.lock b/Remote/buf.lock similarity index 100% rename from RPC/buf.lock rename to Remote/buf.lock diff --git a/RPC/buf.yaml b/Remote/buf.yaml similarity index 100% rename from RPC/buf.yaml rename to Remote/buf.yaml diff --git a/RPC/lib/rpc.pb.go b/Remote/lib/rpc.pb.go similarity index 100% rename from RPC/lib/rpc.pb.go rename to Remote/lib/rpc.pb.go diff --git a/RPC/lib/rpc.pb.gw.go b/Remote/lib/rpc.pb.gw.go similarity index 100% rename from RPC/lib/rpc.pb.gw.go rename to Remote/lib/rpc.pb.gw.go diff --git a/RPC/lib/rpc.proto b/Remote/lib/rpc.proto similarity index 100% rename from RPC/lib/rpc.proto rename to Remote/lib/rpc.proto diff --git a/RPC/lib/rpc_grpc.pb.go b/Remote/lib/rpc_grpc.pb.go similarity index 100% rename from RPC/lib/rpc_grpc.pb.go rename to Remote/lib/rpc_grpc.pb.go diff --git a/Remote/remote.go b/Remote/remote.go new file mode 100644 index 0000000..e59157d --- /dev/null +++ b/Remote/remote.go @@ -0,0 +1,29 @@ +package main + +import ( + "flag" + + "github.com/shadow1ng/fscan/Common" + "github.com/shadow1ng/fscan/Remote/server" +) + +func main() { + // 初始化日志系统 + Common.InitLogger() + + var apiURL string + var secret string + var transport string + var Info Common.HostInfo + flag.StringVar(&apiURL, "api", "", "RPC调用地址") + flag.StringVar(&secret, "secret", "", "RPC调用使用的秘钥") + flag.StringVar(&transport, "transport", "stdio", "MCP传输协议:stdio 或 sse") + Common.Flag(&Info) + + if apiURL != "" { + Common.ApiAddr = apiURL + server.StartApiServer(apiURL, secret) + } else { + server.StartMcpServer(transport) + } +} diff --git a/Remote/server/mcp.go b/Remote/server/mcp.go new file mode 100644 index 0000000..72321c1 --- /dev/null +++ b/Remote/server/mcp.go @@ -0,0 +1,9 @@ +package server + +import "fmt" + +func StartMcpServer(transport string) error { + fmt.Println("Starting MCP server...") + fmt.Println("Transport protocol:", transport) + return nil +} diff --git a/RPC/server.go b/Remote/server/rpc.go similarity index 90% rename from RPC/server.go rename to Remote/server/rpc.go index bfd9cf8..7027195 100644 --- a/RPC/server.go +++ b/Remote/server/rpc.go @@ -1,4 +1,4 @@ -package rpc +package server import ( "context" @@ -8,8 +8,8 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/shadow1ng/fscan/Common" - pb "github.com/shadow1ng/fscan/RPC/lib" - "github.com/shadow1ng/fscan/RPC/service" + pb "github.com/shadow1ng/fscan/Remote/lib" + "github.com/shadow1ng/fscan/Remote/service" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" ) @@ -17,18 +17,15 @@ import ( var internalSecretKey string // 启动 gRPC + HTTP Gateway 服务(仅当设置了 API 地址时) -func StartApiServer() error { - if Common.ApiAddr == "" { - return nil - } - if Common.SecretKey != "" { - internalSecretKey = Common.SecretKey +func StartApiServer(apiURL, sercetkey string) error { + if sercetkey != "" { + internalSecretKey = sercetkey } else { internalSecretKey = time.Now().Format("20060102150405") } grpcAddr := "127.0.0.1:50051" - httpAddr := validateHTTPAddr(Common.ApiAddr, ":8088") + httpAddr := validateHTTPAddr(apiURL, ":8088") go runGRPCServer(grpcAddr) diff --git a/RPC/service/fscan.go b/Remote/service/fscan.go similarity index 98% rename from RPC/service/fscan.go rename to Remote/service/fscan.go index 62f7960..add912f 100644 --- a/RPC/service/fscan.go +++ b/Remote/service/fscan.go @@ -9,7 +9,7 @@ import ( "github.com/shadow1ng/fscan/Common" "github.com/shadow1ng/fscan/Core" - pb "github.com/shadow1ng/fscan/RPC/lib" + pb "github.com/shadow1ng/fscan/Remote/lib" structpb "google.golang.org/protobuf/types/known/structpb" ) diff --git a/main.go b/main.go index da2d8e2..a8d946b 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,6 @@ import ( "github.com/shadow1ng/fscan/Common" "github.com/shadow1ng/fscan/Core" - rpc "github.com/shadow1ng/fscan/RPC" ) func main() { @@ -15,10 +14,6 @@ func main() { var Info Common.HostInfo Common.Flag(&Info) - // 启动 gRPC + HTTP Gateway 服务 - if err := rpc.StartApiServer(); err != nil { - os.Exit(1) - } // 解析 CLI 参数 if err := Common.Parse(&Info); err != nil { os.Exit(1)