我正在研究 ASP.NET 4.0 和 Visual Studio 2010。在我的 Web 项目中,我正在运行一个命令进程来获取系统的物理地址并处理结果并将其分配给字符串变量并执行字符串变量的子字符串以获得仅期望结果。在我的本地主机中,它工作正常,但是当我部署它时,我得到System.ArgumentOutOfRangeException:startIndex 不能大于字符串的长度。异常。我尝试的代码是,
string command = "getmac";
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo("cmd", "/c " + command);
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
process.StartInfo = startInfo;
process.Start();
string mac = "";
string output = process.StandardOutput.ReadToEnd();
if (!string.IsNullOrEmpty(output))
{
mac = output.Substring(162, 20).Trim();
}
process.WaitForExit();
if (!string.IsNullOrEmpty(mac))
{
mactxtbox.Text = mac;
}
编辑
以下是我的输出变量
物理地址传输名称
==================== =========================== =============================== 00-00-00-00-00-00 \Device\Tcpip_{00000000-0000 -0000-0000-000000000000}
我想要的只是格式为 00-00-00-00-00-00 的物理地址