| 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
当サイトはリンクフリーです。リンク時に連絡などは必要有りません。また、どのページにリンクして頂いても構いません。 | |