ページの先頭行へ戻る
Systemwalker Centric Manager API・スクリプトガイド

3.4.2 トラフィック情報格納構造体

トラフィック情報を格納するための構造体を以下に示します。

獲得情報

//インタフェース別トラフィック情報格納構造体
typedef struct     _MP_TRFIF_INF{
  unsigned long  dwIfIndex;                // インタフェース番号
  double         dIfInOctets;              // 受信バイト数
  double         dIfOutOctets;             // 送信バイト数
  double         dIfLinePkts;              // 回線使用率
  double         dIfInPkts;                // 受信パケット数
  double         dIfOutPkts;               // 送信パケット数
  double         dIfDiscardPkts;           // 破棄パケット率
  double         dIfErrorPkts;             // エラーパケット率
  double         dIfSegOctets;             // セグメントバイト数
  double         dIfSegPkts;               // セグメントパケット数
  double         dIfSegBroadcastPkts;      // セグメントブロード
                                           //   キャストパケット数
  double         dIfSegMulticastPkts;      // セグメントマルチ
                                           //   キャストパケット数
  double         dIfSegPercentOfUsage;     // セグメント使用率
  double         dIfSegPercentOfCollision; // セグメントコリジョン
                                           //   発生率
} MP_TRFIF_INF, * LPMP_TRFIF_INF;

使用例

トラフィック情報のアクセスAPI関数の使用例を以下に示します。

//---------------------------------------------------------------------
// インタフェース別トラフィック情報の獲得
//---------------------------------------------------------------------

//---------------------------------------------------------------------
// パラメタ
//      argv[0] : コマンド名
//      argv[1] : ノード名
//      argv[2] : インタフェース番号
//--------------------------------------------------------------------

#include <stdio.h>
#include  "F3crTInf.h"

void main(int argc, char *argv[])
{

        int             Bresult;
        MP_TRFIF_INF    trfinfo;

//---------------------------------------------------------------------
//指定パラメタの表示
//---------------------------------------------------------------------

       printf("--- Traffic information ---\n");
       printf("Node name       = %s\n", argv[1]);
       printf("Interface index = %s\n", argv[2]);
       printf("\n");

//---------------------------------------------------------------------
//トラフィック情報の獲得
//---------------------------------------------------------------------

      memset(&trfinfo, 0, sizeof(trfinfo));

      Bresult = Mp_GetNodeIFTraffic(argv[1], atoi(argv[2]), &trfinfo);
//---------------------------------------------------------------------
// トラフィック情報の表示
//---------------------------------------------------------------------

             if (Bresult == -1) {
                     printf("Error! Reason code = %d\n", errno);
            }  
            else {
                     //トラフィック情報が有効かどうかの判定を行います
                     if (trfinfo.dIfInOctets != MP_TRF_INF_ING)
                             printf("dIfInOctets                  = %.0fB\n",
                                         trfinfo.dIfInOctets);
                     if (trfinfo.dIfOutOctets != MP_TRF_INF_ING)
                             printf("dIfOutOctets                 = %.0fB\n",
                                         trfinfo.dIfOutOctets);
                     if (trfinfo.dIfLinePkts != MP_TRF_INF_ING)
                             printf("dIfLinePkts                  = %.2f%%\n",
                                          trfinfo. dIfLinePkts);
                     if (trfinfo.dIfInPkts != MP_TRF_INF_ING)
                             printf("dIfInPkts                    = %.0fP\n",
                                          trfinfo. dIfInPkts);
                     if (trfinfo.dIfOutPkts != MP_TRF_INF_ING)
                             printf("dIfOutPkts                   = %.0fP\n",
                                          trfinfo. dIfOutPkts);
                     if (trfinfo.dIfDiscardPkts != MP_TRF_INF_ING)
                             printf("dIfDiscardPkts               = %.2f%%\n",
                                          trfinfo. dIfDiscardPkts);
                     if (trfinfo.dIfErrorPkts != MP_TRF_INF_ING)
                             printf("dIfErrorPkts                 = %.2f%%\n",
                                          trfinfo. dIfErrorPkts);
                     if (trfinfo.dIfSegOctets != MP_TRF_INF_ING)
                             printf("dIfSegOctets                  = %.0fB\n",
                                          trfinfo. dIfSegOctets);
                     if (trfinfo.dIfSegPkts != MP_TRF_INF_ING)
                             printf("dIfSegPkts                 = %.0fP\n",
                                          trfinfo. dIfSegPkts);
                     if (trfinfo.dIfSegBroadcastPkts != MP_TRF_INF_ING)
                             printf("dIfSegBroadcastPkts           = %.0fP\n",
                                          trfinfo. dIfSegBroadcastPkts);
                     if (trfinfo.dIfSegMulticastPkts != MP_TRF_INF_ING)
                             printf("dIfSegMulticastPkts           = %.0fP\n",
                                          trfinfo. dIfSegMulticastPkts);
                     if (trfinfo.dIfSegPercentOfUsage != MP_TRF_INF_ING)
                             printf("dIfSegPercentOfUsage          = %.2f%%\n",
                                          trfinfo. dIfSegPercentOfUsage);
                     if (trfinfo.dIfSegPercentOfCollision != MP_TRF_INF_ING)
                             printf("dIfSegPercentOfCollision      = %.2f%%\n",
                                          trfinfo. dIfSegPercentOfCollision);
            }

            return;

 }