Systemwalker Centric Manager APIガイド - UNIX共通 -
|
目次
索引

|
2.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[0] : インタフェース番号
//--------------------------------------------------------------------
#include 〈stdio,h〉
#include “F3crTInf,h”
void main(int argc, char *argv[])
{
int Bresult;
MP_TRFIF_INF trfinfo;
//---------------------------------------------------------------------
//指定パラメタの表示
//---------------------------------------------------------------------
printf("--- Traffic inforemation ---\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(“dIfSegSegPkts = %.0fB\n”,
trfinfo. dIfSegSegPkts);
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;
}
All Rights Reserved, Copyright(C) 富士通株式会社 1995-2004