Welcome to SapporoWorks! We create stimulating network programs.
By a demand from user, SapporoWorks evolves.
トップページ| ソフトウエア| シェアウエア登録| セキュリティ情報| 開発情報| ドキュメント|
開発情報 > IPアドレス・ネットマスクの一覧取得


概要

GetIpAddrTable()を使用すると、現在のIPアドレスの一覧が取得できます。
dwIndexを見ることで、他の一覧取得ライブラリと併用して情報を収集できそうです。

dwBCastAddr ブロードキャストアドレス? が1.0.0.0になるのが、どうもよく分からないのですが・・

Iphlpapi.lib のリンクが必要です。

ソース
 
 #include <iphlpapi.h>   //iphlpapi.lib をリンクする必要がある
 
 void func(void){
     DWORD d=0 ;
     in_addr ina;
     
     //第1パラメータにNULLをおいて、必要サイズを DWORD d に取得する
     GetIpAddrTable(NULL,&d,FALSE);
     
     //MIB_IPADDRTABLEへのポインタに、必要サイズを確保する
     PMIB_IPADDRTABLE IpAddrTable = (PMIB_IPADDRTABLE )new char[d] ;
 
     if( IpAddrTable ){
 
        //アドレステーブルの取得
         if( GetIpAddrTable( (PMIB_IPADDRTABLE)IpAddrTable,&d,FALSE) == NO_ERROR ){
            
        //取得したテーブル数は、dwNumEntriesで分かる
             for( int i = 0 ; i < (int)IpAddrTable->dwNumEntries ; i++ ){
 
                 printf("dwIndex 0x%8.8x",(int)IpAddrTable->table[i].dwIndex);
 
                 ina.S_un.S_addr = IpAddrTable->table[i].dwAddr;
                 printf("dwAddr %s",inet_ntoa( ina ));
 
                 ina.S_un.S_addr = IpAddrTable->table[i].dwMask;
                 printf("dwMask %s",inet_ntoa( ina ));
 
                 ina.S_un.S_addr = IpAddrTable->table[i].dwBCastAddr;
                 printf("dwBCastAddr %s",inet_ntoa( ina ));
 
                 printf("dwReasmSize %d",IpAddrTable->table[i].dwReasmSize);
 	    }
 	}
         //MIB_IPADDRTABLEへのポインタに、確保したメモリを解放する
 	delete [] IpAddrTable;
     }
 }
 



サンプル

サンプルプログラム実行画面



ソースファイルのダウンロード 002-src.LZH 6Kbyte 実行ファイルのダウンロード 002-bin.LZH 201Kbyte


開発情報 > IPアドレス・ネットマスクの一覧取得

copyright(c) 1995- SapporoWorks
当サイトはリンクフリーです。リンク時に連絡などは必要有りません。また、どのページにリンクして頂いても構いません。