Solarwinds Snmp Sweeper のように、指定された Oid の範囲の IP をスキャンしようとすると、多くの問題が発生します。Solarwinds snmp ツールが欠落している理由は、より大きな範囲をチェックするときに遅すぎるためです。
現在、約 62 のホストでタイムアウト エラーが発生しています。各ホストを互いに並行してチェックするタスク ファクトリを実行しています。まだタイムアウト エラーが発生します。SharpSnmpNet にも同じ問題があることに気付きました。
リスナーは返信を受け取っても開いたままになっていると思うので、リスナーを処分できると役立つと思います。これは起こるべきではありませんが、ターゲット ホストが異なるにもかかわらず、同時に複数の応答を受信しているためだと思います。
どうすればリスナーを処分できますか。これは、私のタスクが実行している関数であるsharpsnmpを呼び出す唯一の場所です。
レックス・リー氏: 返信いただければ、信じられないほどありがたいです。
public string ProcessData()
{
var receiver = new IPEndPoint(Ip, Config.Port);
var vList = Config.SnmpOids.Select(item => new Variable(new ObjectIdentifier(item))).ToList();
IList<Variable> vars = Messenger.Get(VersionCode.V2, receiver, new OctetString(Config.Community), vList,
Config.TimeOut);
foreach (Variable variable in vars)
{
// Lets create a string based on our returned variable binding value.
var outBuilder = new StringBuilder();
if (!(variable.ToString().Contains("NoSuchObject")))
{
outBuilder.Append(variable.Data + " ][ ");
}
string outPut = outBuilder.ToString();
if (!(String.IsNullOrEmpty(outPut)))
{
return outPut;
//Invoke our callback
//outputTree.BeginInvoke(new StringDelegate(UpdateScan), outPut, ip.ToString());
//txtFound.BeginInvoke(new StringDelegate(UpdateScan), 1);
}
}
return null;
}