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


概要

現在設定されているDNSサーバのアドレスは、GetNetworkParams()で取得できます。

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

ソース
 
 #include <iphlpapi.h>   //iphlpapi.lib をリンクする必要がある
 
 void __fastcall TForm1::Button1Click(TObject *Sender)
 {
     char TmpBuf[1024];
     FIXED_INFO * fi;
     ULONG    Len;
     IP_ADDR_STRING * pIPAddr;
 
     Len = sizeof( FIXED_INFO );
     // とりあえず、sizeof(FIXED_INFO)だけ、メモリを確保する
     fi = (FIXED_INFO *)new char[Len];
 
     if( ERROR_BUFFER_OVERFLOW == GetNetworkParams(fi,&Len)){
         // FIXED_INFOへの確保メモリが不足した場合、再度取得し直す
         delete [] fi;
         fi = (FIXED_INFO *)new char[Len];
     }
 
     if (ERROR_SUCCESS==GetNetworkParams( fi, &Len )){
 
         Memo1->Lines->Add("DNS Servers");
 
         // DNSサーバのアドレスは、FIXED_INFO構造体のIpAddress.Stringに格納されている
         // また、複数のDNSサーバが有る場合は、pIPAddr ->Nextに次のIpAddress.Stringへのポインタが格納されている
         pIPAddr = &(fi->DnsServerList);
         while ( pIPAddr ) {
             wsprintf(TmpBuf,"\t%s\n", pIPAddr ->IpAddress.String );
             Memo1->Lines->Add(TmpBuf);
             pIPAddr = pIPAddr ->Next;
         }
     }
     //メモリの解放
     delete [] fi;
 }
 



サンプル

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


ソースファイルのダウンロード 009-src.LZH 4Kbyte 実行ファイルのダウンロード 009-bin.LZH 9Kbyte
※2004/05/16 加藤康博様に実行ファイルのコンパイルオプション誤りをご指摘いただきました。

開発情報 > DNSサーバの取得

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