我正在尝试使用#snmp(Lextm.SharpSnmpLib.9.0.1)和C#来监控系统运行时间。
这是我的代码:
public int GetUptime()
{
var uptimeMessage = new GetNextRequestMessage(0, VersionCode.V1, new OctetString("public"),
new List<Variable>
{
new Variable(new ObjectIdentifier(Oids.SystemUpTime))
});
var response = uptimeMessage.GetResponse(10000, _agentEndPoint);
var ticks = response.Pdu().Variables[0].Data.ToString();
return int.Parse(ticks);
}
但是在尝试为TimeTicks类型的响应获取.Data属性时出现CS0103错误。
如果这不是错误,我如何使用#snmp?
访问原始刻度值答案 0 :(得分:1)
通过检查此库中TimeTicks
的源代码,您可以看到ToString
方法实际上生成了一个基于.NET TimeSpan
的字符串。这就是为什么当你尝试解析int
异常时。
至于此OID,您已经知道Data
将是TimeTicks
您应该转换为该类型,然后致电ToUInt32
。