ASP.NET调用dos命令获取交换机流量

  protected void btn_Cisco_Click(object sender, EventArgs e)

  {

  try

  {

  string ip = txt_ip.Value;

  string community = txt_ttm.Value;

  string oid = txt_oid.Value;

  string outoid = txt_outoid.Value;

  string city = txt_city.Value;

  //执行进出口流量的dos命令

  string cmd = Dos + " " + community + " " + ip + " " + oid + "&&" + Dos + " " + community + " " + ip + " " + outoid;

  string ExecuteDos = GetExecuteDos.ExecuteDos(cmd, 180000);

  string OutValue = string.Empty;

  string InValue = string.Empty;

  if (!string.IsNullOrEmpty(ExecuteDos))

  {

  ExecuteDos = ExecuteDos.Replace("SNMPv2 - SMI", "$");

  string[] strs = ExecuteDos.Split('$');

  foreach (var item in strs)

  {

  OutValue = item.Substring(item.LastIndexOf("INTEGER:") + 8);

  }

  foreach (var item in strs)

  {

  InValue = item.Substring(item.IndexOf("INTEGER:") + 8);

  InValue = InValue.Replace("SNMPv2-SMI::enterprises.9.2.2.1.1.8.10201 = INTEGER:", "");

  string arry = InValue.Replace("\r\n", "&");

  string[] value = arry.Split('&');

  for (int i = 0; i < value.Length - 1; i++)

  {

  if (i == 0)

  {

  InValue = value[0];

  break;

  }

  }

  }

  Model.Host model = new Host();

  model.hostname = ip;

  model.oid = oid;

  model.Outoid = outoid;

  model.community = community;

  model.city = city;

  model.addtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

  model.OutOctets = (float)Math.Round(Convert.ToSingle(OutValue) / 1024 / 1024, 2);

  model.InOctets = (float)Math.Round(Convert.ToSingle(InValue) / 1024 / 1024, 2);

  int res = bll.addHostIp(model);

  if(res > 0)

  {

  Response.Write("进口流量为:" + Math.Round(Convert.ToSingle(InValue) / 1024 / 1024, 2)+ ""+"MB" +"出口流量为:" + Math.Round(Convert.ToSingle(OutValue) / 1024 / 1024, 2)+ ""+"MB");

  }

  }

  }

  catch (Exception ex)

  {

  Response.Write("");

  }

  }

  }

  (编辑:雷林鹏 来源:网络)

posted @ 2018-07-11 09:56  雷林鹏  阅读(215)  评论(0编辑  收藏  举报