2014-02-19 48 views
1

有誰知道是否存在包含WMI IPHelper函數的等價物的現有C#.NET名稱空間?具體而言,我需要調用CreateIpForwardEntry和DeleteIpForwardEntry。通過P/Invoke是唯一的方法嗎? (注意:這不是對第三方庫的請求,而是對於標準.NET庫的請求)任何使用WMI IPHelper的標準C#.NET方法?

+0

這不是一個請求「推薦或找到工具,庫或最喜歡的場外資源」。我認爲這很清楚。我想知道如何從.NET調用CreateIpForwardEntry。爲什麼這是脫離主題的SO? – ProfNimrod

+1

我同意這是_not_ off主題。 –

+0

感謝支持傑森。當我第一次發佈這個問題時,這個問題就被擱置了。在重新說明明確表示我不在尋找第三方圖書館的建議後,修改後的問題被投票重新開放。一旦成功重新開放,我不認爲SO應該允許再次擱置一個問題。 – ProfNimrod

回答

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(); 
相關問題