工控编程吧

标题: 上位机MFC如何获得本地计算机的IP协议统计信息 [打印本页]

作者: qq263946146    时间: 2019-8-8 10:47
标题: 上位机MFC如何获得本地计算机的IP协议统计信息

  1. #include "IPHlpApi.h"
  2. #pragma comment(lib,"IPHLPAPI.LIB")
  3. #pragma comment(lib,"netapi32.lib ")

  4. void CGkbc8Dlg::OnButton2()
  5. {
  6. CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST1);
  7.         pListBox->ResetContent();

  8.         MIB_IPSTATS IPStats;

  9.         //获得IP协议统计信息
  10.         if (GetIpStatistics(&IPStats) != NO_ERROR)
  11.         {
  12.                 return;
  13.         }

  14.         CString strText = _T("");
  15.         strText.Format(_T("IP forwarding enabled or disabled:%d"),
  16.                 IPStats.dwForwarding);
  17.         pListBox->AddString(strText);
  18.         strText.Format(_T("default time-to-live:%d"),
  19.                 IPStats.dwDefaultTTL);
  20.         pListBox->AddString(strText);
  21.         strText.Format(_T("datagrams received:%d"),
  22.                 IPStats.dwInReceives);
  23.         pListBox->AddString(strText);
  24.         strText.Format(_T("received header errors:%d"),
  25.                 IPStats.dwInHdrErrors);
  26.         pListBox->AddString(strText);
  27.         strText.Format(_T("received address errors:%d"),
  28.                 IPStats.dwInAddrErrors);
  29.         pListBox->AddString(strText);
  30.         strText.Format(_T("datagrams forwarded:%d"),
  31.                 IPStats.dwForwDatagrams);
  32.         pListBox->AddString(strText);
  33.         strText.Format(_T("datagrams with unknown protocol:%d"),
  34.                 IPStats.dwInUnknownProtos);
  35.         pListBox->AddString(strText);
  36.         strText.Format(_T("received datagrams discarded:%d"),
  37.                 IPStats.dwInDiscards);
  38.         pListBox->AddString(strText);
  39.         strText.Format(_T("received datagrams delivered:%d"),
  40.                 IPStats.dwInDelivers);
  41.         pListBox->AddString(strText);
  42.         strText.Format(_T("outgoing datagrams requested to send:%d"),
  43.                 IPStats.dwOutRequests);
  44.         pListBox->AddString(strText);
  45.         strText.Format(_T("outgoing datagrams discarded:%d"),
  46.                 IPStats.dwOutDiscards);
  47.         pListBox->AddString(strText);
  48.         strText.Format(_T("sent datagrams discarded:%d"),
  49.                 IPStats.dwOutDiscards);
  50.         pListBox->AddString(strText);
  51.         strText.Format(_T("datagrams for which no route exists:%d"),
  52.                 IPStats.dwOutNoRoutes);
  53.         pListBox->AddString(strText);
  54.         strText.Format(_T("datagrams for which all frags did not arrive:%d"),
  55.                 IPStats.dwReasmTimeout);
  56.         pListBox->AddString(strText);
  57.         strText.Format(_T("datagrams requiring reassembly:%d"),
  58.                 IPStats.dwReasmReqds);
  59.         pListBox->AddString(strText);
  60.         strText.Format(_T("successful reassemblies:%d"),
  61.                 IPStats.dwReasmOks);
  62.         pListBox->AddString(strText);
  63.         strText.Format(_T("failed reassemblies:%d"),
  64.                 IPStats.dwReasmFails);
  65.         pListBox->AddString(strText);
  66.         strText.Format(_T("successful fragmentations:%d"),
  67.                 IPStats.dwFragOks);
  68.         pListBox->AddString(strText);
  69.         strText.Format(_T("failed fragmentations:%d"),
  70.                 IPStats.dwFragFails);
  71.         pListBox->AddString(strText);
  72.         strText.Format(_T("datagrams fragmented:%d"),
  73.                 IPStats.dwFragCreates);
  74.         pListBox->AddString(strText);
  75.         strText.Format(_T("number of interfaces on computer:%d"),
  76.                 IPStats.dwNumIf);
  77.         pListBox->AddString(strText);
  78.         strText.Format(_T("number of IP address on computer:%d"),
  79.                 IPStats.dwNumAddr);
  80.         pListBox->AddString(strText);
  81.         strText.Format(_T("number of routes in routing table:%d"),
  82.                 IPStats.dwNumRoutes);
  83.         pListBox->AddString(strText);
  84. }
复制代码
如上代码,在按钮的点击函数内调用,可以显示出相关供。 (, 下载次数: 0)