亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#簡單實現SNMP的方法

2019-10-29 21:41:07
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了C#簡單實現SNMP的方法,通過一個簡單的自定義類分析了C#實現SNMP的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C#簡單實現SNMP的方法。分享給大家供大家參考。具體如下:

 

 
  1. /** 
  2. C# Network Programming  
  3. by Richard Blum 
  4. Publisher: Sybex  
  5. ISBN: 0782141765 
  6. */ 
  7. using System; 
  8. using System.Text; 
  9. using System.Net; 
  10. using System.Net.Sockets; 
  11. public class SimpleSNMP 
  12. public static void Main(string[] argv) 
  13. int commlength, miblength, datatype, datalength, datastart; 
  14. int uptime = 0; 
  15. string output; 
  16. SNMP conn = new SNMP(); 
  17. byte[] response = new byte[1024]; 
  18. Console.WriteLine("Device SNMP information:"); 
  19. // Send sysName SNMP request 
  20. response = conn.get("get", argv[0], argv[1], "1.3.6.1.2.1.1.5.0"); 
  21. if (response[0] == 0xff) 
  22. Console.WriteLine("No response from {0}", argv[0]); 
  23. return
  24. // If response, get the community name and MIB lengths 
  25. commlength = Convert.ToInt16(response[6]); 
  26. miblength = Convert.ToInt16(response[23 + commlength]); 
  27. // Extract the MIB data from the SNMP response 
  28. datatype = Convert.ToInt16(response[24 + commlength + miblength]); 
  29. datalength = Convert.ToInt16(response[25 + commlength + miblength]); 
  30. datastart = 26 + commlength + miblength; 
  31. output = Encoding.ASCII.GetString(response, datastart, datalength); 
  32. Console.WriteLine(" sysName - Datatype: {0}, Value: {1}"
  33. datatype, output); 
  34. // Send a sysLocation SNMP request 
  35. response = conn.get("get", argv[0], argv[1], "1.3.6.1.2.1.1.6.0"); 
  36. if (response[0] == 0xff) 
  37. Console.WriteLine("No response from {0}", argv[0]); 
  38. return
  39. // If response, get the community name and MIB lengths 
  40. commlength = Convert.ToInt16(response[6]); 
  41. miblength = Convert.ToInt16(response[23 + commlength]); 
  42. // Extract the MIB data from the SNMP response 
  43. datatype = Convert.ToInt16(response[24 + commlength + miblength]); 
  44. datalength = Convert.ToInt16(response[25 + commlength + miblength]); 
  45. datastart = 26 + commlength + miblength; 
  46. output = Encoding.ASCII.GetString(response, datastart, datalength); 
  47. Console.WriteLine(" sysLocation - Datatype: {0}, Value: {1}", datatype, output); 
  48. // Send a sysContact SNMP request 
  49. response = conn.get("get", argv[0], argv[1], "1.3.6.1.2.1.1.4.0"); 
  50. if (response[0] == 0xff) 
  51. Console.WriteLine("No response from {0}", argv[0]); 
  52. return
  53. // Get the community and MIB lengths 
  54. commlength = Convert.ToInt16(response[6]); 
  55. miblength = Convert.ToInt16(response[23 + commlength]); 
  56. // Extract the MIB data from the SNMP response 
  57. datatype = Convert.ToInt16(response[24 + commlength + miblength]); 
  58. datalength = Convert.ToInt16(response[25 + commlength + miblength]); 
  59. datastart = 26 + commlength + miblength; 
  60. output = Encoding.ASCII.GetString(response, datastart, datalength); 
  61. Console.WriteLine(" sysContact - Datatype: {0}, Value: {1}"
  62. datatype, output); 
  63. // Send a SysUptime SNMP request 
  64. response = conn.get("get", argv[0], argv[1], "1.3.6.1.2.1.1.3.0"); 
  65. if (response[0] == 0xff) 
  66. Console.WriteLine("No response from {0}", argv[0]); 
  67. return
  68. // Get the community and MIB lengths of the response 
  69. commlength = Convert.ToInt16(response[6]); 
  70. miblength = Convert.ToInt16(response[23 + commlength]); 
  71. // Extract the MIB data from the SNMp response 
  72. datatype = Convert.ToInt16(response[24 + commlength + miblength]); 
  73. datalength = Convert.ToInt16(response[25 + commlength + miblength]); 
  74. datastart = 26 + commlength + miblength; 
  75. // The sysUptime value may by a multi-byte integer 
  76. // Each byte read must be shifted to the higher byte order 
  77. while(datalength > 0) 
  78. uptime = (uptime << 8) + response[datastart++]; 
  79. datalength--; 
  80. Console.WriteLine(" sysUptime - Datatype: {0}, Value: {1}"
  81. datatype, uptime); 
  82. class SNMP 
  83. public SNMP() 
  84. public byte[] get(string request, string host, string community, string mibstring) 
  85. byte[] packet = new byte[1024]; 
  86. byte[] mib = new byte[1024]; 
  87. int snmplen; 
  88. int comlen = community.Length; 
  89. string[] mibvals = mibstring.Split('.'); 
  90. int miblen = mibvals.Length; 
  91. int cnt = 0, temp, i; 
  92. int orgmiblen = miblen; 
  93. int pos = 0; 
  94. // Convert the string MIB into a byte array of integer values 
  95. // Unfortunately, values over 128 require multiple bytes 
  96. // which also increases the MIB length 
  97. for (i = 0; i < orgmiblen; i++) 
  98. temp = Convert.ToInt16(mibvals[i]); 
  99. if (temp > 127) 
  100. mib[cnt] = Convert.ToByte(128 + (temp / 128)); 
  101. mib[cnt + 1] = Convert.ToByte(temp - ((temp / 128) * 128)); 
  102. cnt += 2; 
  103. miblen++; 
  104. else 
  105. mib[cnt] = Convert.ToByte(temp); 
  106. cnt++; 
  107. snmplen = 29 + comlen + miblen - 1; //Length of entire SNMP packet 
  108. //The SNMP sequence start 
  109. packet[pos++] = 0x30; //Sequence start 
  110. packet[pos++] = Convert.ToByte(snmplen - 2); //sequence size 
  111. //SNMP version 
  112. packet[pos++] = 0x02; //Integer type 
  113. packet[pos++] = 0x01; //length 
  114. packet[pos++] = 0x00; //SNMP version 1 
  115. //Community name 
  116. packet[pos++] = 0x04; // String type 
  117. packet[pos++] = Convert.ToByte(comlen); //length 
  118. //Convert community name to byte array 
  119. byte[] data = Encoding.ASCII.GetBytes(community); 
  120. for (i = 0; i < data.Length; i++) 
  121. packet[pos++] = data[i]; 
  122. //Add GetRequest or GetNextRequest value 
  123. if (request == "get"
  124. packet[pos++] = 0xA0; 
  125. else 
  126. packet[pos++] = 0xA1; 
  127. packet[pos++] = Convert.ToByte(20 + miblen - 1); //Size of total MIB 
  128. //Request ID 
  129. packet[pos++] = 0x02; //Integer type 
  130. packet[pos++] = 0x04; //length 
  131. packet[pos++] = 0x00; //SNMP request ID 
  132. packet[pos++] = 0x00; 
  133. packet[pos++] = 0x00; 
  134. packet[pos++] = 0x01; 
  135. //Error status 
  136. packet[pos++] = 0x02; //Integer type 
  137. packet[pos++] = 0x01; //length 
  138. packet[pos++] = 0x00; //SNMP error status 
  139. //Error index 
  140. packet[pos++] = 0x02; //Integer type 
  141. packet[pos++] = 0x01; //length 
  142. packet[pos++] = 0x00; //SNMP error index 
  143. //Start of variable bindings 
  144. packet[pos++] = 0x30; //Start of variable bindings sequence 
  145. packet[pos++] = Convert.ToByte(6 + miblen - 1); // Size of variable binding 
  146. packet[pos++] = 0x30; //Start of first variable bindings sequence 
  147. packet[pos++] = Convert.ToByte(6 + miblen - 1 - 2); // size 
  148. packet[pos++] = 0x06; //Object type 
  149. packet[pos++] = Convert.ToByte(miblen - 1); //length 
  150. //Start of MIB 
  151. packet[pos++] = 0x2b; 
  152. //Place MIB array in packet 
  153. for(i = 2; i < miblen; i++) 
  154. packet[pos++] = Convert.ToByte(mib[i]); 
  155. packet[pos++] = 0x05; //Null object value 
  156. packet[pos++] = 0x00; //Null 
  157. //Send packet to destination 
  158. Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 
  159. ProtocolType.Udp); 
  160. sock.SetSocketOption(SocketOptionLevel.Socket, 
  161. SocketOptionName.ReceiveTimeout, 5000); 
  162. IPHostEntry ihe = Dns.Resolve(host); 
  163. IPEndPoint iep = new IPEndPoint(ihe.AddressList[0], 161); 
  164. EndPoint ep = (EndPoint)iep; 
  165. sock.SendTo(packet, snmplen, SocketFlags.None, iep); 
  166. //Receive response from packet 
  167. try 
  168. int recv = sock.ReceiveFrom(packet, ref ep); 
  169. catch (SocketException) 
  170. packet[0] = 0xff; 
  171. return packet; 
  172. public string getnextMIB(byte[] mibin) 
  173. string output = "1.3"
  174. int commlength = mibin[6]; 
  175. int mibstart = 6 + commlength + 17; //find the start of the mib section 
  176. //The MIB length is the length defined in the SNMP packet 
  177. // minus 1 to remove the ending .0, which is not used 
  178. int miblength = mibin[mibstart] - 1; 
  179. mibstart += 2; //skip over the length and 0x2b values 
  180. int mibvalue; 
  181. for(int i = mibstart; i < mibstart + miblength; i++) 
  182. mibvalue = Convert.ToInt16(mibin[i]); 
  183. if (mibvalue > 128) 
  184. mibvalue = (mibvalue/128)*128 + Convert.ToInt16(mibin[i+1]); 
  185. //ERROR here, it should be mibvalue = (mibvalue-128)*128 + Convert.ToInt16(mibin[i+1]); 
  186. //for mib values greater than 128, the math is not adding up correctly  
  187. i++; 
  188. output += "." + mibvalue; 
  189. return output; 

希望本文所述對大家的C#程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
欧美日韩国产一区二区三区地区| 国产一级爱c视频| 在线高清欧美| 国产精品久久久久精| 老司机精品福利视频| www.成年人视频| 岛国中文字幕在线| 国产视频一区在线| 欧美一区二区三区四区在线观看地址| 国产精品探花在线播放| 在线视频一区二区三区| 精品国产黄a∨片高清在线| 欧美壮男野外gaytube| 美女隐私在线观看| 日韩三级一区二区三区| 国产乱子伦一区二区三区国色天香| 国产又粗又猛又爽又黄的网站| 亚洲国产婷婷综合在线精品| 久久中文精品| 欧美午夜激情影院| 亚洲精品乱码久久久久久不卡| 日本精品视频| 欧美大片在线观看| 99久久人爽人人添人人澡| 国产精华一区| 亚洲综合色噜噜狠狠| 四虎影院在线免费播放| 最新版天堂资源在线| 黑人糟蹋人妻hd中文字幕| 丰满熟女一区二区三区| 日韩在线卡一卡二| 欧美理论电影大全| 成人免费区一区二区三区| 亚洲精品久久久久久久久久久久久久| 国产一区二区三区精品久久久| 国产性网软件大全| 日韩美女视频中文字幕| 99草草国产熟女视频在线| 欧美电影一区二区| 一级黄色片国产| 中文字幕乱码免费| 免费看美女毛片| 波多野结衣亚洲| 国产午夜精品一区二区三区欧美| 我看黄色一级片| 国产又猛又黄的视频| 中文字幕国产精品一区二区| 战狼4完整免费观看在线播放版| 长河落日免费高清观看| 久久久国产一区| 一区二区三区av| 国产成人免费精品| 国产一二三区精品| 亚洲春色一区二区三区| 日韩免费av网站| 精品人妻伦一二三区久久| 国产精品91一区二区三区| 91导航在线观看| 97精品国产福利一区二区三区| 中国女人特级毛片| 国产精品久久久久一区二区三区| 成人黄色综合网站| 超碰国产在线| 精品国产乱码久久久久久婷婷| 羞羞视频在线观看欧美| 成人狠狠色综合| 久久精品免费看| 手机在线免费观看毛片| 国产乱码一区二区三区| 欧美视频免费看| 亚洲一区二区三区四区中文| 女人和拘做爰正片视频| 欧美在线一区二区三区| 欧美激情日韩| 国产精品视频第一区二区三区| 婷婷色在线播放| 成人毛片视频网站| 欧美大片日本大片免费观看| 色老头一区二区三区在线观看| 精品美女久久久久久免费| 亚洲国产av一区二区| 影音先锋男人资源在线| 久草视频免费在线| 黄色一级片免费看| 国产免费一区二区三区在线观看| eeuss鲁片一区二区三区在线观看| 91精品福利| 亚洲视频日韩精品| 亚洲精品免费一区亚洲精品免费精品一区| 六月婷婷七月丁香| 欧美激情第1页| 福利在线一区| 亚洲久草在线| 97免费在线视频| jizz18欧美| 久久久久亚洲av无码专区桃色| 女人天堂亚洲aⅴ在线观看| youjizz在线视频| 电影网一区二区| 黄色影片网址| 亚洲国产精品电影在线观看| 日本电影欧美片| 91九色在线观看| 国内精品视频免费| 波多野结衣视频在线观看| 国产精品流白浆视频| 自拍偷拍欧美| 国产三线在线| 国产欧美日韩精品在线| 欧美一区视频在线| 亚洲天堂电影在线观看| 成人频在线观看| 中文字幕久久一区| 国产视频九色蝌蚪| h视频免费高清在线观看| 三级黄视频在线观看| 欧美色欧美亚洲另类七区| l8videosex性欧美69| 国产成人免费视频精品含羞草妖精| 91在线观看入口| 欧美精品久久久久a| 欧美一区二区三区在线电影| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 电影亚洲精品噜噜在线观看| 日本中文字幕在线播放| 久久久久久久久久久影视| 成人超碰在线| 蜜桃视频在线观看播放| 在线视频婷婷| 亚洲a区在线视频| 日韩av在线资源| 97色在线视频观看| 污污视频网站在线免费观看| 久久久久久久波多野高潮日日| 国产精品香蕉视屏| 91资源在线视频| 精品一区二区三区免费看| zjzjzjzjzj亚洲女人| 国产九九视频一区二区三区| 在线观看免费黄色片| 成人毛片在线免费观看| h版电影在线播放视频网址| 中文有码在线观看| 久久久久久久久久久久久av| 一区二区三视频| 欧美一区二区黄片| 欧美日韩在线免费播放| 日本韩国欧美精品大片卡二| 日本wwwwwwwzzzzz视频| 四虎成人精品永久免费av九九| 日韩欧美精品在线观看视频| 国产视频91在线| 一线天自拍视频| 97欧洲一区二区精品免费| 一级日韩一级欧美| 欧美艾v福利视频在线观看| 国产在线观看黄| 亚洲成人久久一区| 国产一区二区三区直播精品电影| 日韩av男人的天堂| 在线观看精品一区二区三区| 黑人狂躁日本娇小| 亚洲欧洲国产精品| 欧美日韩精品一二三区| 国产九九九九| 国产免费高清av| 久久综合色影院| 日本黄色大片视频| 日韩国产欧美亚洲| 美女黄色免费看| 国产三级精品三级在线观看| 在线日本欧美| 国产精品三级电影| 一区在线中文字幕| 91精品国产综合久久国产大片| 一区二区亚洲精品| 国产高清精品一区二区三区| av在线播放亚洲| 又黄又爽在线免费观看| 国产欧美精品区一区二区三区| 人妻av无码专区| 久无码久无码av无码| 国产一区二区三区免费在线观看| av一区和二区| 中文字幕有码在线播放| 日韩美女一级视频| 午夜亚洲福利| 在线三级中文| 欧美乱大交xxxx| 亚洲男男gay视频| 91精品人妻一区二区三区果冻| 一菊综合网成人综合网| 猛男gaygay欧美视频| 在线不卡日本v二区707| 欧美色图影院| 激情av综合| 日本激情视频在线| 国产精品久久久久不卡| 黄色漫画在线免费观看| 91吃瓜网在线观看| 欧美日韩色视频| 欧美性大战久久久久久久蜜臀| 欧洲视频一区二区三区| 中文字幕一区二区三区四区五区| 四虎影视成人精品国库在线观看| 国产精品综合久久久久久| 亚洲精品成人av久久| 午夜电影福利网| 成人一级生活片| 欧美 日韩 国产 一区二区三区| 国产丝袜在线播放| 免费视频一区二区| 日韩亚洲精品在线观看| 一区二区三区毛片免费| 在线天堂中文www视软件| 日韩视频精品在线| 久久99国产乱子伦精品免费| 日本中文字幕精品| 国产一区二区黑人欧美xxxx| 日韩国产成人无码av毛片| 国模私拍一区二区| 欧美激情成人在线视频| 久久久久久日本一区99| 国产老妇另类xxxxx| 欧美成a人片在线观看久| 日韩视频一区在线观看| 日韩激情综合| 日韩视频免费观看高清| 天天操天天爱天天爽| 三区四区电影在线观看| 国产黄色av免费看| 中文字幕乱码亚洲精品一区| 91久久精品国产91久久| 在线成人私人影院| 又黄又www的网站| 国产精品嫩草影院8vv8| 国产a国产a国产a| 精品欧美日韩一区二区| 成人写真福利网| 毛片网站在线| 99re免费99re在线视频手机版| 久久综合婷婷综合| 久久天天躁夜夜躁狠狠躁2022| 亚洲视频第一页| 91在线免费观看| 久久精品男女| 日韩一级免费视频| 在线国产精品网| 国产精品三区www17con| 丰满少妇在线观看bd| 免费看黄色网| 天天操夜夜操天天射| 欧美一级免费| yellow字幕网在线| 国产精品免费视频一区| 久久99精品久久久久久动态图| 黄色网址在线免费看| 国产91精品视频在线观看| 成人免费高清| 校园春色影音先锋| 粉嫩av一区二区夜夜嗨| 亚洲精品国产a| 亚洲精品在线免费看| a黄色片在线观看| 亚洲欧洲激情在线| 一区二区三区在线高清| 男女视频在线观看| 神马久久影视大全| 天堂网www在线观看| 欧美福利在线视频| 亚洲a级在线播放观看| 精品久久久久久中文字幕一区奶水| 国产在线一区二区| 国产极品久久久| 国产精品免费无遮挡| 亚洲欧洲日夜超级视频| 久久黄色小视频| 美国一级黄色录像| 国产igao激情在线入口| 久久国产毛片| 亚洲制服欧美中文字幕中文字幕| av影片在线| 91caoporm在线视频| 屁屁影院在线观看| 91福利免费在线| 国产精品视频一区二区三区经| 人人妻人人爽人人澡人人精品| 亚洲美女福利视频| 欧美国产一区二区三区激情无套| 日韩视频免费观看高清完整版| 91啪九色porn原创视频在线观看| 国产乱子伦三级在线播放| 亚洲欧美日韩色图| 国产69精品99久久久久久宅男| av中文字幕第一页| 三上悠亚ssⅰn939无码播放| 2025国产精品视频| 亚洲free性xxxx护士hd| 国产夫妻自拍av| 国产白浆在线观看| 91福利在线看| 一道精品视频一区二区三区图片| 精品一区二区三区在线观看| 黄色成人免费网| 欧美一区二区三区免费在线看| 国产在线日韩精品| 国产91免费观看| 大肉大捧一进一出好爽动态图| 国产极品在线观看| 国产一国产二国产三| 久久精品夜夜夜夜夜久久| 99久久精品免费看国产| 日本精品一二三区| 97成人精品区在线播放| 一区二区精品视频在线观看| caoporn超碰国产公开| 日本午夜精品一区二区| 久久久久久久久久久影视| 久久国产日韩| 国产精品欧美风情| 精品欧美乱码久久久久久1区2区| 色一情一乱一区二区三区| 亚洲一区二区视频在线| 亚洲成人av中文| 丝袜中文在线| 欧美另类精品xxxx孕妇| 国产粉嫩在线观看| 日本在线一区|