From 23995df656a767b7f52e7009b171ce410b53f3d9 Mon Sep 17 00:00:00 2001 From: Jack <3486688394@qq.com> Date: Tue, 28 Jan 2025 23:59:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20set=20=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=E4=BB=A5=E8=AE=BE=E7=BD=AE=E7=AB=AF=E5=8F=A3=E4=BB=A3?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PortProxyTool.Cli/Program.cs | 48 +++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/PortProxyTool.Cli/Program.cs b/PortProxyTool.Cli/Program.cs index 6d55716..8b2ff5e 100644 --- a/PortProxyTool.Cli/Program.cs +++ b/PortProxyTool.Cli/Program.cs @@ -74,6 +74,52 @@ internal static class Program break; } + return; + case "set": + 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.Set(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) @@ -173,7 +219,7 @@ internal static class Program return; default: - AnsiConsole.MarkupLine("[red]命令没有找到[/][gray]:[/] [white]接受的命令为 add, remove, list[/]"); + AnsiConsole.MarkupLine("[red]命令没有找到[/][gray]:[/] [white]接受的命令为 add, remove, set, list[/]"); return; } }