获取本机ip地址,其实方法有很多了,现在用windows api 在delphi下实现如下;
1. 在uses 里引用 winsock 单元。
2. 源码如下:
- function GetLocalIP:string;
- type
- TaPInAddr = array [0..10] of PInAddr;
- PaPInAddr = ^TaPInAddr;
- var
- phe : PHostEnt;
- pptr : PaPInAddr;
- Buffer : array [0..63] of char;
- I : Integer;
- GInitData : TWSADATA;
- wVersion:word;
- begin
- wVersion:=MAKEWORD(1,1);
- Result :='';
- if WSAStartup(wVersion, GInitData)=0 then
- 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;
- end;
- end;
3.该源码的不足的地方是如果机器上有2张及以上网卡,得到的是最后一个。