SnmpSharpNet OctetString DateAndTime自定义解析
来源:互联网 发布:大陆单片机 编辑:程序博客网 时间:2024/05/19 06:36
在进行有关Snmpsharpnet的变成时遇到一个问题,当OctetString向时间转换时产生的是乱码。是因为snmpsharpnet并没有定义OctetString向datetime转换的函数。经过笔者的学习与实践找到了解决的办法。接下来以获得计算机上已安装程序的安装时间为例:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using SnmpSharpNet;//需要添加引用namespace 时间乱码问题{ class Program { static void Main(string[] args) { SimpleSnmp snmp = new SimpleSnmp("127.0.0.1", "public"); if (!snmp.Valid) { return; } Dictionary<Oid, AsnType> result = snmp.Walk(SnmpVersion.Ver2, ".1.3.6.1.2.1.25.6.3.1.5");//程序安装时间 if (result == null) { return; } foreach (KeyValuePair<Oid, AsnType> kvp in result) { //Console.WriteLine(kvp.Value.ToString()); //如果是执行这一句就会发现是乱码结果 Console.WriteLine(parseDateAndTimeOctet((OctetString)kvp.Value)); } } public static String parseDateAndTimeOctet( OctetString v ) { //OctetString byte[] bts = v.ToArray(); byte[] format_str = new byte[128]; //保存格式化过后的时间字符串 int year; int month; int day; int hour; int minute; int second; //int msecond; year =year = bts[0] * 256 + bts[1]; month = bts[2]; day = bts[3]; hour = bts[4]; minute = bts[5]; second = bts[6]; //msecond = bts[7]; //以下为格式化字符串 int index = 3; int temp = year; for (; index >= 0; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } format_str[4] = (Byte)'-'; index = 6; temp = month; for (; index >= 5; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } format_str[7] = (Byte)'-'; index = 9; temp = day; for (; index >= 8; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } format_str[10] = (Byte)' '; index = 12; temp = hour; for (; index >= 11; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } format_str[13] = (Byte)':'; index = 15; temp = minute; for (; index >= 14; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } format_str[16] = (Byte)':'; index = 18; temp = second; for (; index >= 17; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } //int i = 6; //while (i >= 0) //{ // Console.WriteLine("{0}", bts[i]); // i--; //} return System.Text.Encoding.Default.GetString(format_str);// new String(format_str); } }}
1 0
- SnmpSharpNet OctetString DateAndTime自定义解析
- DateAndTime
- DateAndTime.java
- snmpsharpnet的Trap实例
- X680 23 Octetstring类型标识
- 在Snmp++中处理DateAndTime类型数据
- DateAndTime 的命名空间Microsoft.VisualBasic(C#)
- 谈谈个人对SnmpSharpNet的实践经验
- SNMP_PP和SNMPSharpNet的性能比较
- SNMP_PP和SNMPSharpNet的性能比较
- 谈谈个人对SnmpSharpNet的实践经验
- Android笔记(5) ---DateAndTime控件以及Dialog
- php 自定义错误解析
- Android自定义控件解析
- 自定义公式解析问题
- android 解析自定义layout
- lucene 自定义解析器
- Android动画自定义解析
- Linux学习总结(1)——Linux命令大全完整版
- XlistView的使用
- 往fragment传值参考代码
- iOS开发 给Label加下划线、中划线
- FatMouse'trade
- SnmpSharpNet OctetString DateAndTime自定义解析
- 天池_阿里音乐流行趋势预测大赛(1) —— 赛题分析
- JAVA--简单记事本
- js点击图片放大效果ImageZoom代码下载
- 定制并发类(五)在一个Executor对象中使用我们的ThreadFactory
- 百度地图简单定位
- 关于android Sdk23不兼容HttpEntity解决
- [leetcode-341]Flatten Nested List Iterator(java)
- C#面试问答总结1