日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > 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#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
中文字幕精品一区二区三区在线| 欧美一级欧美三级在线观看| av中文网站| 一本一道久久a久久精品综合蜜臀| 91精品国产自产在线观看永久∴ | 中文字幕 欧美日韩| 国产视频一区三区| 中文字幕综合在线| 亚洲美女视频一区| 欧美久久在线| 亚洲日本欧美日韩高观看| 日韩激情一区| 99精品999| 久久精品日韩无码| 日韩中文字幕| 国产福利不卡| 一区二区国产在线| 日韩精品福利一区二区三区| 中文字幕亚洲一区二区av在线| 精品国产免费观看一区| 一区二区三区视频网站| 一区二区日韩av| 国产在线高潮| 日本免费在线视频不卡一不卡二| 日韩精品首页| 国产99在线|亚洲| 亚洲乱码中文字幕| 欧美在线视频第一页| 精品中文字幕在线| 欧美 日韩 国产在线| 中文字幕一区二区三区精品| 国产拍揄自揄精品视频麻豆| 国产91欧美| 91精品在线免费| 国产黄色片大全| 国产在线拍偷自揄拍精品| 欧洲精品在线一区| 午夜伊人狠狠久久| 国产一区精品在线| 日韩高清不卡在线| 亚洲欧美中文字幕在线一区| 在线欧美日韩国产| 日韩精品久久久| 国产永久免费高清在线观看| 久久精品最新免费国产成人| 日韩欧美一级精品久久| 91精品国产自产在线| 大香一本蕉伊线亚洲网| 中文字幕欧美人妻精品一区蜜臀| 欧美日韩国产首页在线观看| 亚洲欧洲精品在线| 午夜精品一区二区三区视频免费看| 亚洲大片精品永久免费| 亚洲成年人在线播放| 欧美三级中文字幕在线观看| 国产欧亚日韩视频| 亚洲一级特黄| 99在线精品视频免费观看20| 久久精品免费在线观看| 搞黄在线观看| 欧美 日韩 国产 高清| 欧美1区免费| 欧美日韩精品久久久| 国产亚洲欧美中文| 日韩欧美999| 一区二区视频在线| 日韩 欧美 亚洲| av免费在线播放| 日韩国产一区| 中文亚洲欧美| 国产一区在线精品| 日韩在线观看精品| 欧美日韩国产一中文字不卡| 欧美大片在线观看一区| 精品国产999| 中文字幕精品视频在线| 丰满少妇一区二区| 欧美日韩亚洲一| 91亚洲国产| 国产成人精品三级| 国产超级va在线视频| 午夜精品一区二区三区免费视频| 日韩中文字幕网| 午夜高潮免费视频| 亚洲热在线观看| 久久99久久99精品中文字幕| 久久精品久久久久| 91精品国产91久久久久久久久 | 欧美一级免费在线观看| 天堂精品高清1区2区3区| 中文官网资源新版中文第二页在线观看| 国产一卡2卡3卡4卡网站免费| 精品视频资源站| 日韩欧美一二三四区| 91精品国产丝袜白色高跟鞋| 99在线国产| 欧美不卡视频一区发布| 日韩欧美在线中字| 亚洲大胆人体av| 日韩免费精品视频| 91精品国产自产观看在线| 中文在线不卡视频| lutube成人福利在线观看| 午夜亚洲福利| 国内不卡的二区三区中文字幕| 国产成人精品999在线观看| 婷婷中文字幕一区三区| 日韩不卡中文字幕| 在线一区二区三区精品| 国产成人精品日本亚洲专区61| 精品免费久久久| 欧美一级二级三级区| 精品日韩av| 欧美三级网址| 日韩在线观看精品| 91精品观看| 欧美日韩国产一二三| 久久99久久久久久久噜噜| a√免费观看在线网址www| 久久精品国产99| 国产啊啊啊视频在线观看| 国产中文在线视频| 亚洲人线精品午夜| 国产在线www| 国产在线观看精品| 欧美三级日韩三级| 欧美日韩久久不卡| 国产午夜精品久久| 91精品在线观看国产| 中文字幕2020第一页| 91久久久精品国产| 欧美激情一区二区在线| 在线观看国产福利视频| 91精品国产调教在线观看| 中文在线一区二区| 欧美久久综合性欧美| 欧美日韩国产中文精品字幕自在自线| 欧美日韩中文在线| 中文字幕99| 欧美日韩激情一区二区三区| 国产三级在线| 精品国产免费观看一区| 中文字幕在线日韩| 亚洲中文字幕一区| 中文在线一区| 精品在线观看一区| 久久精品国产91精品亚洲| 欧美日韩在线综合| 国产成人精品日本亚洲专区61| 国产视频一二区| 亚洲欧美中文字幕在线一区| 亚洲黄色在线观看| 日韩欧美国产高清91| 欧美日韩性视频一区二区三区| 精品在线网站观看| 国产偷国产偷亚洲清高网站| 91精品国产91| 自拍日韩亚洲一区在线| 一级网站免费观看| av免费在线观看网址| 欧美日韩激情一区| 日韩免费视频| 二区三区不卡不卡视频| 亚洲大胆人体av| 亚洲视频资源在线| 一区二区三区视频网站| 中文字幕在线播出| 国产黄在线播放| 亚洲高清视频一区| 欧美激情视频一区二区三区在线播放| 日韩中文字幕在线视频播放 | 日韩国产91| 久久riav| 亚洲 欧美 日韩系列| 午夜少妇久久久久久久久| 亚洲福利视频在线| 极品久久久久久| 日韩欧美三级视频| 中文字幕精品视频在线| 日韩手机在线观看视频| 久久69成人| 亚洲黄色www| 五月天久久比比资源色| 国产香蕉精品视频| 日韩一级网站| 日韩中文字幕久久| 成人ww免费完整版在线观看| www.狠狠| 国产九九在线| 欧美日韩国产综合视频在线观看中文| 日本精品二区| 日本中文字幕在线观看| 国产成人综合精品| 91xxx在线观看| 99精品人妻国产毛片| 国产欧美日韩在线播放| 91精品在线国产| 日韩欧美一二三| 欧美91精品| 国产欧美日产一区| 欧美中文字幕精品| 91精品国产自产在线丝袜啪| 国产高清精品在线| 中文网丁香综合网| 亚洲视频色图| 在线视频你懂得一区| 欧美日韩国产一中文字不卡| 国产高清在线视频| 中文字幕亚洲二区 | 日韩欧美亚洲区| 成人a在线观看| 国产成人精品999| 亚洲视频中文字幕| 天堂在线www天堂中文在线| 国产字幕中文| 免费视频最近日韩| 91最新在线| 国产在线小视频| 在线精品视频免费播放| 欧美中文字幕在线观看视频| 精品国产综合久久| 日韩精品丝袜在线| 国产区在线看| 国产日韩成人精品| 亚州福利视频| 国产日韩在线视频| 日韩精品福利一区二区三区| 欧美日韩一级片在线观看| a在线观看免费视频| 国产日产一区二区| 国产中文伊人| 国产视频一二区| 国产乱码午夜在线视频| 精品久久久三级| 国产九九在线| 在线观看免费国产小视频| 国产三级精品在线观看| 国产日韩精品视频| 最新中文字幕在线| 亚洲免费观看在线观看| 日韩欧美999| 久久91精品视频| 日韩视频在线免费播放| 一区二区三区在线免费 | 中文字幕一区二区三区精品| 日韩精品在线免费播放| 欧美日韩一二三| 中文字幕日韩精品在线| 成人久久久久| 日韩一级在线免费观看| 国产日韩中文在线| 国产欧美日韩亚洲| 麻豆一区二区99久久久久| 欧美日韩亚洲视频| 91久久久久| 国产欧美日韩久久| www高清在线视频日韩欧美| 尤物在线精品| wwwwww国产| 日韩国产欧美亚洲| 欧美在线日韩精品| 精品视频www| 国产精品一区二三区| 一区二区三区鲁丝不卡| 欧美一级免费在线观看| 亚洲成av人片在线| 日韩欧美中文字幕公布| 国产在线中文字幕| 国产一卡2卡3卡4卡网站免费| 欧美日韩综合在线观看| 伊人网站在线| 亚洲国产午夜精品| 中文字幕在线高清| 欧美日韩国产在线观看| 91日韩欧美| 91精品久久久久久久久久| 二区三区中文字幕| 欧美日韩综合在线| 日本视频久久久| www.久久久精品| 一区二区高清在线| 中文字幕日韩视频| 中文字幕在线视频精品| 亚洲久草视频| 日韩不卡高清视频| 欧美日韩精品三区| 久久久精品日韩| 一本久久a久久精品亚洲| 91精品啪在线观看国产60岁| 日韩视频在线免费看| 欧美黄页在线免费观看| 亚洲一区在线视频观看| av免费不卡国产观看| 二区三区中文字幕| 快she精品国产999| 日韩欧美中文字幕在线播放| 视频一区二区中文字幕| av影视在线看| 国产乱国产乱老熟300部视频| 国产最顶级的黄色片在线免费观看| 国产在线小视频| 精品福利在线观看| 在线观看中文字幕一区| 成片免费观看| 精品视频在线导航| 亚洲成av人综合在线观看| 在线精品视频免费播放| 中文字幕欧美国内| 国产成人精品三级| 亚洲国产一区自拍| 亚洲羞羞网站| 色综合天天综合网天天狠天天| 日韩欧美国产高清91| 91久久精品国产91久久| 日韩欧美国产一二三区| 欧美日韩国产高清视频| 日韩在线中文字幕| 麻豆精品视频入口| 国产小视频在线| 欧美亚洲国产免费| 欧美日韩国产一中文字不卡| 欧美日韩在线国产| 日韩中文字幕在线播放| 国产福利在线看| 日韩三级视频中文字幕| 91国内精品在线视频| 亚洲最新永久观看在线| 国产日韩中文字幕在线| 亚洲v中文字幕| 亚洲丝袜一区| 婷婷精品进入| 国产69精品久久久久孕妇国产69久久 | 内射国产内射夫妻免费频道| 日本精品福利视频| 日韩高清在线不卡| 日韩欧美高清在线| 一区二区欧美国产| 午夜影院在线观看欧美| 国产手机精品视频| 日韩精品乱码av一区二区| 99久热re在线精彩视频| 欧美综合精品| 日韩欧美一二三| 国产aa精品| 日本黄色一区二区三区| av亚洲免费| 中文字幕在线视频日韩| 欧美日韩视频免费| 精品极品三级久久久久| 亚洲免费在线视频一区 二区| 在线欧美日韩精品| 国产日韩免费| 欧美午夜影院在线视频| 欧美日韩午夜在线| 色综合久久88色综合天天免费| 视频在线一区二区| 国产日韩精品电影| 精品一二三区| 精品中文字幕在线播放| 亚洲开心激情| 在线手机中文字幕| 精品日韩一区二区三区免费视频| 久久蜜桃精品| 中文在线中文字幕| 亚洲国产福利| 欧美三级日本三级少妇99| 拍真实国产伦偷精品| 日韩免费高清一区二区| 欧美国产综合视频| 欧美三级三级三级爽爽爽| 99精品电影| 日韩av中文字幕一区| 中文官网资源新版中文第二页在线观看| 久久精品视频免费看| 91久久大香伊蕉在人线| 亚洲午夜av| 国产高清一级片| 午夜高潮免费视频| 精品国产乱码久久久久久蜜臀| 日韩欧美中文字幕在线播放| 国产综合精品在线| 中文字幕99| 亚洲一区在线观看视频| 粉嫩粉嫩芽的虎白女18在线视频| 成人一区二区不卡免费| 精品熟女一区二区三区| 国产三级视频在线播放线观看| 国产欧美日韩精品综合| 国产wwww| 日韩欧美一级精品久久| 国产一级免费在线观看| 中文字幕一区不卡| 日韩欧美在线网址| 一区二区视频在线观看免费的| 免费国产成人看片在线| 亚洲素人一区二区| 欧美日韩在线不卡一区| 国产三级做爰在线观看| www.精品视频| 欧美久久久网站|