1

我正在创建一个应用程序,它使用 SNMPWalk 来获取特定 IP 地址的详细信息。现在它意味着使用 Nmap 查找指定网络中的所有打印机,然后使用 SNMPWalk 获取每台打印机的详细信息。

问题是 SNMPWalk 给了我错误:

"No log handling enabled - using stderr logging
-v2c:  (Sub-id not found: (top) -> -v2c)"

我的代码在这里:

Process p = new Process();

p.StartInfo.FileName = snmploc + "\\snmpwalk.exe";

p.StartInfo.ErrorDialog = false;

p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = false;

p.StartInfo.WorkingDirectory = snmploc;

p.StartInfo.Arguments = "–mALL -v2c –cpublic " + printer.IP();

p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;

p.Start();

Console.WriteLine("Snmpwalk has been fired");

Console.WriteLine("Waiting for Snmp to terminate...");

string output = p.StandardOutput.ReadToEnd();

string error = p.StandardError.ReadToEnd();

p.WaitForExit();

Console.WriteLine(p.ExitCode);

printer是类的一个对象Printer。它用于包含打印机详细信息,例如 IP 地址、名称、型号、序列号和打开的端口。snmploc从命令行参数获得。

这如此复杂的主要原因是,当我尝试在命令提示符中使用完全相同的命令时,它可以完美运行。

4

0 回答 0