通过机器名得到IP地址: 
  
function procedure TForm1.nametoip(name:string):string; 
var 
WSAData: TWSAData; 
HostEnt: PHostEnt; 
begin 
result:=''; 
WSAStartup(2, WSAData); 
HostEnt := gethostbyname(PChar(name)); 
if HostEnt <> nil then 
begin 
with HostEnt^ do 
result:= Format('%d.%d.%d.%d', [Byte(h_addr^[0]), Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]); 
end; 
WSACleanup; 
end; 

解决方案 »

  1.   

    放一个clientsocket元件
    他的localaddress就是本机的IP地址
      

  2.   

    Uses
      Psock;function GetLocalIP:string;
    var
      PSock : TPowersock;
    begin
      PSock := TPowersock.Create(nil);
      try
        Result := PSock.LocalIP;
      finally
        PSock.Free;
      end;
    end;
    调用这个函数,返回值就是本机ip地址。
      

  3.   

    楼顶的兄弟:
         函数语句WSAStartup(2, WSAData)中的参数WSAData应该为指针类型,但改为WSAStartup(2, ◎WSAData)后,编译提示形参实参类型仍然不符,这是为什么?