使用 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();
它在后台执行命令。
对于网络刷新,我通常打开管理员权限的命令提示符并键入这些命令:
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();
它在后台执行命令。