ローカルホスト名(IPアドレス)を取得する

遠隔操業しているPCにレポートを送らせる際、そのIPアドレスが特定できると分析しやすい。このため下記ロジックを実装した。


{****************************************************************}
{* ローカルホスト名を取得する *}
{****************************************************************}
procedure TForm1.IPaddress;
var
wVersionRequired: Word;
WSData: TWSAData;
Status: Integer;
Name: array[0..255] of Char;
HostEnt: PHostEnt;
IP: PChar;
str:string;
begin
wVersionRequired := MAKEWORD(1, 1);
Status := WSAStartup(
wVersionRequired, WSData);
if Status <> 0 then begin
MessageDlg('Error Occured', mterror, [mbOK], 0);
exit;
end;
Name:='';
HostEnt := GetHostByName(@Name);
if HostEnt <> nil then begin
IP := HostEnt^.h_addr_list^;
str := IntToStr(Integer(IP[0]))
+ '.' + IntToStr(Integer(IP[1]))
+ '.' + IntToStr(Integer(IP[2]))
+ '.' + IntToStr(Integer(IP[3]));
end;

memo1.lines.add('Host = '+str);
end;