1

有谁知道是否存在包含等效 WMI IPHelper 函数的现有 C#.NET 命名空间?具体来说,我需要调用 CreateIpForwardEntry 和 DeleteIpForwardEntry。是通过 P/Invoke 的唯一方法吗?(注意:这不是对第三方库的请求,而是对标准 .NET 库的请求)

4

1 回答 1

3

最后,我决定不再尝试 P/Invoke WMI IPHelper 函数。启动一个打开 cmd.exe 的进程并编写控制台命令来添加和删除路由要容易得多。下面的代码说明了如何做到这一点。

var proc = new Process
{
    StartInfo = new ProcessStartInfo
    {
        FileName = "cmd.exe",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        RedirectStandardInput = true,
        CreateNoWindow = true
    }
};

proc.Start();
proc.StandardInput.WriteLine(delete
    ? "route delete " + ServiceIpAddress + " mask " + GatewayMask + " " + GatewayIpAddress + " -p" : "route add " + ServiceIpAddress + " mask " + GatewayMask + " " +  GatewayIpAddress + " -p");
roc.Close();
于 2014-02-21T13:43:55.997 回答