我在尝试扫描指定 Oid 的一系列 ips 时遇到了很多问题,就像 Solarwinds Snmp Sweeper 一样。Solarwinds snmp 工具缺乏的原因是它们在检查较大范围时太慢了。
我现在在大约 62 台主机上收到超时错误。我正在运行一个任务工厂来并行检查每个主机。我仍然收到超时错误。我注意到 SharpSnmpNet 也有同样的问题。
我相信能够处置听众可能会有所帮助,因为我认为即使它已收到回复,它也会保持打开状态。这不应该发生,但我相信这是因为我同时收到多个回复,即使他们有不同的目标主机。
我该如何处置听众。这是我唯一调用sharpsnmp的地方,这是我的任务正在执行的功能。
Lex Li 先生:如果您能回复,我将不胜感激:
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;
}