0

我正在尝试执行以下请求,结果应该是大约 900 个变量,而不是 100 个。我发送 1 或 10 个 oid 并不重要,我总是得到不超过 100 个变量。我做错了什么?

            var readCommunity = new OctetString("XXXXX");
            var oidsList = new List<string>
            {
"1.3.6.1.2.1.2.2.1.3",
"1.3.6.1.2.1.2.2.1.5",
"1.3.6.1.2.1.2.2.1.6",
"1.3.6.1.2.1.2.2.1.7",
"1.3.6.1.2.1.2.2.1.8",
"1.3.6.1.2.1.2.2.1.2",
"1.3.6.1.2.1.2.2.1.10",
"1.3.6.1.2.1.2.2.1.16",
"1.3.6.1.2.1.2.2.1.14",
"1.3.6.1.2.1.31.1.1.1.6"
            };
            var oids = oidsList.Select(oid => new Variable(new ObjectIdentifier(oid))).ToArray();
            
            ISnmpMessage request= new GetBulkRequestMessage(
                0,
                VersionCode.V2,
                readCommunity,
                0,
                1000,
                oids);

            var response = request.GetResponse(60000, new IPEndPoint(IPAddress.Parse("1.1.1.1"), 161));
4

1 回答 1

0

您可以发送请求,索要任意数量的物品,但由代理商决定退回给您的数量。标准是这样定义的,

接收 SNMP 实体生成一个 Response-PDU,其中包含由请求通信的请求变量绑定的总数

虽然 Response-PDU 中的最大变量绑定数
以 N + (M * R) 为界,但由于以下三个 原因之一,可能会使用较少
数量的变量绑定(可能为零)生成响应。

参考

于 2020-06-27T16:01:40.440 回答