From 7924aea2c38016bdf8fc486791bc9720e9374718 Mon Sep 17 00:00:00 2001 From: Jack <3486688394@qq.com> Date: Tue, 28 Jan 2025 23:53:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=AB=AF=E5=8F=A3?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E5=B7=A5=E5=85=B7=E7=9A=84=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PortProxyTool.Cli/Program.cs | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/PortProxyTool.Cli/Program.cs b/PortProxyTool.Cli/Program.cs index ac14b3d..952db0a 100644 --- a/PortProxyTool.Cli/Program.cs +++ b/PortProxyTool.Cli/Program.cs @@ -12,6 +12,52 @@ internal static class Program else switch (args[0]) { + case "add": + switch (args.Length) + { + case 6: + var targetType = PortProxyUtil.GetPortProxyTypeByString(args[1]); + if (targetType == null) + { + AnsiConsole.MarkupLine( + "[red]参数错误[/][gray]:[/] [white]接受的第一个参数为 v4tov4, v4tov6, v6tov6, v6tov4[/]"); + return; + } + + if (!ushort.TryParse(args[3], out var listenPort)) + { + AnsiConsole.MarkupLine( + "[red]参数错误[/][gray]:[/] [white]接受的第三个参数为 0 - 65535[/]"); + return; + } + + if (!ushort.TryParse(args[5], out var targetPort)) + { + AnsiConsole.MarkupLine( + "[red]参数错误[/][gray]:[/] [white]接受的第五个参数为 0 - 65535[/]"); + return; + } + + var item = new PortProxyItem + { + Type = (PortProxyType)targetType, + ListenAddress = args[2], + ListenPort = listenPort, + TargetAddress = args[4], + TargetPort = targetPort + }; + var result = PortProxy.Add(item); + AnsiConsole.MarkupLine(string.IsNullOrEmpty(result) + ? "[green]添加成功[/]" + : $"[red]添加失败[/][gray]:[/] [white]{result}[/]"); + break; + default: + AnsiConsole.MarkupLine( + "[red]参数错误[/][gray]:[/] [white]接受的参数为 <监听地址> <监听端口> <目标地址> <目标端口>[/]"); + break; + } + + return; case "list": switch (args.Length) {