【DO!BOOK・ページリンク】
2008_migaro_techreport_001   119 / 136

BOOKをみる

10秒後にBOOKのページに移動します


117 6.クライアント端末の IPアドレスの取得 実行プログラムが動作しているク ライアント端末のIP アドレスを 取得することはできますか? 実行環境にもよるが、IP アドレ スは、WinSock API のGetHost Name およびGetHostByName を利用す ることで取得可能である。  IP アドレスを取得し、一般的な3 桁区 切りの'XXX.XXX.XXX.XXX' という形の 文字列で、IP アドレスを返却する関数例 を示す。【ソース5】 Q. A. ソース5 IPアドレス取得関数例 uses にWinSock を追記 function GetIPAddress: String; var wVerReq: Word; WSData: TWSAData; Buff: array[0..255] of Char; Host: PHostEnt; IP: PChar; begin wVerReq := MakeWord(1, 1); if WSAStartup(wVerReq, WSData) = 0 then try if GetHostName(Buff, Length(Buff)) = 0 then begin Host := GetHostByName(@Buff); if Host <> nil then begin IP := Host^.h_addr_list^; Result := IntToStr(Integer(IP[0])) + '.' + IntToStr(Integer(IP[1])) + '.' + IntToStr(Integer(IP[2])) + '.' + IntToStr(Integer(IP[3])); end; end; finally WSACleanup; end; end;