使用 c# 刷新 DNS/网络重启命令

Flush DNS/ network restart Commands using c#

对于网络刷新,我通常打开管理员权限的命令提示符并键入这些命令:

netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns

我需要在 C# 代码中运行这五个命令

现在我有一个仅适用于发布和续订的代码。下面是它的代码。

public bool FlushAllNetworks()
        {
            try
            {
                ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
                ManagementObjectCollection objMOC = objMC.GetInstances();
                foreach (ManagementObject objMO in objMOC)
                {
                    //Need to determine which adapter here with some kind of if() statement
                    objMO.InvokeMethod("ReleaseDHCPLease", null, null);
                    objMO.InvokeMethod("RenewDHCPLease", null, null);
                }
            }
            catch (Exception ex) {
                return false;
            }
            return true;
        }

如有任何帮助,我们将不胜感激。谢谢

编辑:我找到了答案。我接受了 AmirHossein 的建议并做了一个小的修正。以下是我自己的问题的解决方案。

        Process process = new Process();
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;
        startInfo.FileName = "cmd.exe";
        startInfo.Verb = "runas";
        startInfo.Arguments = "/C netsh winsock reset & netsh int ip reset & ipconfig /release & ipconfig /renew & ipconfig /flushdns";
        process.StartInfo = startInfo;
        process.Start();

您可以使用 Process() 到 运行 您提到的命令:

Process p = new Process();
p.startInfo.CreateNoWindow = true;
p.startInfo.UseShellExecute = false;
p.startInfo.FileName = "cmd";
p.startInfo.Arguments = "netsh winsock reset && netsh int ip reset && ipconfig /release && ipconfig /renew && ipconfig /flushdns";

p.Start();

它在后台执行命令。