feat: 添加 set 命令以设置端口代理

This commit is contained in:
2025-01-28 23:59:29 +08:00
parent bde7c4fe6f
commit 23995df656

View File

@@ -74,6 +74,52 @@ internal static class Program
break; 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]接受的参数为 <v4tov4/v4tov6/v6tov6/v6tov4> <监听地址> <监听端口> <目标地址> <目标端口>[/]");
break;
}
return; return;
case "list": case "list":
switch (args.Length) switch (args.Length)
@@ -173,7 +219,7 @@ internal static class Program
return; return;
default: default:
AnsiConsole.MarkupLine("[red]命令没有找到[/][gray]:[/] [white]接受的命令为 add, remove, list[/]"); AnsiConsole.MarkupLine("[red]命令没有找到[/][gray]:[/] [white]接受的命令为 add, remove, set, list[/]");
return; return;
} }
} }