![](https://img.haomeiwen.com/i28619890/05909125cf228010.jpg)
废话不多说,直接上代码
function GetLocalIP:string;
//获取本机地址,在uses 里引用 winsock 单元。
type
TaPInAddr = array [0..10] of PInAddr;
//用于存储活动的ip地址列表
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char; //store hostname
I : Integer;
GInitData : TWSADATA;
wVersion:word;
begin
wVersion:=MAKEWORD(1,1); //winsock dll version
Result :='';
if WSAStartup(wVersion, GInitData)=0 then //初始化windows socket
begin
if GetHostName(Buffer, SizeOf(Buffer))=0 then //计算机名称
phe := GetHostByName(buffer);
if phe = nil then
Exit;
pptr:= PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
result:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup; //关闭、清理windows socket
end;
end;
//执行,获取本机IP地址
procedure TFormMDS.FormCreate(Sender: TObject);
begin
Edit3.Text:=GetLocalIP;
end;
网友评论