uses winsock;var WSAData:TWSAData; HostEnt:PHostEnt; CompName,sIP:string; begin CompName:=Edit1.Text; WSAStartup(2,WSAData); HostEnt:=gethostbyname(pchar(CompName)); if HostEnt<>nil then begin with HostEnt^ do sIP:=Format('%d.%d.%d.%d',[byte(h_addr^[0]),byte(h_addr^[1]),byte(h_addr^[2]),byte(h_addr^[3])); end; WSACleanup; Edit2.Text:=sIP; end;
WSAData:TWSAData;
HostEnt:PHostEnt;
CompName,sIP:string;
begin
CompName:=Edit1.Text;
WSAStartup(2,WSAData);
HostEnt:=gethostbyname(pchar(CompName));
if HostEnt<>nil then
begin
with HostEnt^ do
sIP:=Format('%d.%d.%d.%d',[byte(h_addr^[0]),byte(h_addr^[1]),byte(h_addr^[2]),byte(h_addr^[3]));
end;
WSACleanup;
Edit2.Text:=sIP;
end;
FastNet面版里面的任何一个控件都有LocalIP属性
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,winsock, StdCtrls;procedure TForm1.Button1Click(Sender: TObject);
var
wsadata:Twsadata;
P:phostent;
sip:string;
inetaddr:dword;
begin
wsastartup(2,wsadata);
sip:=edit1.Text;
inetaddr:=inet_addr(pchar(sip));
try
p:=gethostbyaddr(@inetaddr,length(sip),pf_inet);
memo1.Lines.Add(p^.h_name);
memo1.Lines.Add(string(p^.h_aliases));
finally
wsacleanup;
end;
end;