using System.Diagnostics;
public class FirewallHelper
{
    // 创建阻止规则
    public static void BlockIPPort(string ip, int port)
    {
        string ruleName = $"Block_{ip}_Port_{port}";
        string command = $"advfirewall firewall add rule name=\"{ruleName}\" " +
                          $"dir=in action=block protocol=TCP " +
                          $"remoteip={ip} localport={port}";
        ExecuteNetshCommand(command);
    }
    // 删除规则(可选)
    public static void RemoveBlockRule(string ip, int port)
    {
        string ruleName = $"Block_{ip}_Port_{port}";
        string command = $"advfirewall firewall delete rule name=\"{ruleName}\"";
        ExecuteNetshCommand(command);
    }
    private static void ExecuteNetshCommand(string command)
    {
        ProcessStartInfo psi = new ProcessStartInfo
        {
            FileName = "netsh",
            Arguments = command,
            Verb = "runas", // 请求管理员权限
            WindowStyle = ProcessWindowStyle.Hidden,
            UseShellExecute = true
        };
        try
        {
            Process.Start(psi)?.WaitForExit();
        }
        catch (Exception ex)
        {
            Console.WriteLine($"执行命令失败: {ex.Message}");
        }
    }
}
// 使用示例
FirewallHelper.BlockIPPort("194.16.5.13", 3389);