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