任何使用 WMI IPHelper 的标准 C#.NET 方式?
Posted
技术标签:
【中文标题】任何使用 WMI IPHelper 的标准 C#.NET 方式?【英文标题】:Any standard C#.NET way to utilize WMI IPHelper? 【发布时间】:2014-02-19 17:59:53 【问题描述】:有谁知道是否存在包含等效 WMI IPHelper 函数的现有 C#.NET 命名空间?具体来说,我需要调用 CreateIpForwardEntry 和 DeleteIpForwardEntry。是通过 P/Invoke 的唯一方法吗? (注意:这不是对第三方库的请求,而是对标准 .NET 库的请求)
【问题讨论】:
这不是“推荐或查找工具、库或喜爱的场外资源”的请求。我认为这很清楚。我想知道如何从 .NET 调用 CreateIpForwardEntry。为什么这与 SO 无关? 我同意这不是题外话。 感谢杰森的支持。当我第一次发布这个问题时,这个问题被搁置了。在重新措辞以明确表示我不是在寻找第三方图书馆的推荐之后,修改后的问题被投票重新开放。一旦成功重新打开,我认为 SO 不应允许第二次搁置问题。 【参考方案1】:最后,我决定不再尝试 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();
【讨论】:
以上是关于任何使用 WMI IPHelper 的标准 C#.NET 方式?的主要内容,如果未能解决你的问题,请参考以下文章