刚接触C#,做个简单的窗体程序,我想实现:利用telnet方式自动登陆到unix主机上,并自动获取该机器的信息,我的主要代码如下:
private void button4_Click(object sender, EventArgs e)
{ ProcessStartInfo psi = new ProcessStartInfo("cmd"); //调用自己PC机的命令行
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
psi.RedirectStandardInput = true; Process p = Process.Start(psi);
p.StandardInput.WriteLine("telnet"); //利用windows自带的telnet登陆 p.StandardInput.WriteLine("open hostname"); //hostname 即给定的主机IP p.StandardInput.WriteLine("username"); //username即给定的主机账号 p.StandardInput.WriteLine("passwd"); //passwd即给定的主机密码 p.StandardInput.WriteLine("lsdev "); //获取主机的设备信息 string output = p.StandardOutput.ReadToEnd(); p.WaitForExit(); MessageBox.Show(output); //显示机器设备信息 p.Close();
}我的问题是:我发现程序执行后,MessageBox.Show(output)无法显示输出主机的设备信息,请大家帮我分析下这是为什么?我应该如何做?谢谢。
private void button4_Click(object sender, EventArgs e)
{ ProcessStartInfo psi = new ProcessStartInfo("cmd"); //调用自己PC机的命令行
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
psi.RedirectStandardInput = true; Process p = Process.Start(psi);
p.StandardInput.WriteLine("telnet"); //利用windows自带的telnet登陆 p.StandardInput.WriteLine("open hostname"); //hostname 即给定的主机IP p.StandardInput.WriteLine("username"); //username即给定的主机账号 p.StandardInput.WriteLine("passwd"); //passwd即给定的主机密码 p.StandardInput.WriteLine("lsdev "); //获取主机的设备信息 string output = p.StandardOutput.ReadToEnd(); p.WaitForExit(); MessageBox.Show(output); //显示机器设备信息 p.Close();
}我的问题是:我发现程序执行后,MessageBox.Show(output)无法显示输出主机的设备信息,请大家帮我分析下这是为什么?我应该如何做?谢谢。
有确定已经成功连上unix主机?
先手动下命令确定能连上unix主机,然后也可以从网上下载一些telnet的工具来试试。
一种可能是系统自带的telnet不支持重定向
程序运行后的结果如下:
程序运行后的结果如下:
http://hi.csdn.net/space-839066-do-album-picid-763240.html
程序运行后的结果如下: