IPアドレスとホスト名(マシン名)の相互変換
41 IPFromToHostName 動作確認 Delphi2007 更新日 2008/02/06(水)

ネットワーク上に存在するIPアドレスから
そのマシン名というかホスト名を求めることができます。
以下のGetHostName関数を使ってください。

また、世の中にあるサーバーのホスト名
(例えば『www.google.co.jp』とか)
からIPアドレスを求めることができます。
以下のGetIpAddress関数を使ってください。

おそらくはWindowsがDNSから情報を取得していると
思いますが、WinSockを使っているので
その辺りは意識せずに使えます。

────────────────────
{-------------------------------
//  IPアドレスからhost名を求める
備考:       uses Winsockが必要
履歴:       2003/11/12
            2006/04/04 若干簡単になるように修正
            2008/02/06 
              inet_addrとWSAStartupの行を入れ替えた
//------------------------------}
function GetHostName(Ip : String) : String;
var
  PH : PHostEnt;
  InAddr: TInAddr;
  WSADATA : TWSADATA;
begin
  Result := '';
  if Ip = '' then exit;
  WSAStartup(MakeWord(1,1) , WSADATA);  //MakeWord(1,1)=$0101
  InAddr.S_addr := inet_addr(PChar(Ip));

  PH := gethostbyaddr(@InAddr,4,PF_INET);

  if PH = nil then Exit;
  Result := string(ph^.h_name);
  WSACleanup;
end;

//------------------------------
{-------------------------------
//  host名からIPアドレスを求める
備考:       uses Winsockが必要
履歴:       2006/04/04
//------------------------------}
function GetIpAddress(HostName : String) : String;
var
  PH : PHostEnt;
  InAddr: TInAddr;
  WSADATA : TWSADATA;
begin
  Result := '';
  if HostName = '' then exit;
  WSAStartup(MakeWord(1,1), WSADATA);

  PH := gethostbyname(PChar(HostName));

  if PH = nil then Exit;
  InAddr := PInAddr(ph^.h_addr_list^)^;
  Result := inet_ntoa(InAddr);
  WSACleanup;
end;
//------------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Add( GetHostName('127.0.0.1') );
  Memo1.Lines.Add( GetIpAddress(GetHostName('127.0.0.1')) );
  Memo1.Lines.Add( GetIpAddress('www.yahoo.co.jp') );
  Memo1.Lines.Add( GetIpAddress('www.google.co.jp') );
end;
────────────────────

参考────────────────────
[Delphi-ML:33669] Re: IP アドレス(?) からの変換
http://www2.big.or.jp/~osamu/Delphi/browse.cgi?index=33669

[Delphi-ML:33662] Re: IPアドレス(?)からの変換
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/033/033662.html

こける Wired-Winsockを使ってみようぜ-3.住所と氏名 '97/11/23
http://www.asahi-net.or.jp/~nk2w-ishr/winsock3.htm