delphi 取到本地IP
function TServerForm.NameToIP(): String; type pu_long = ^u_long; var varTWSAData : TWSAData; varPHostEnt : PHostEnt; varTInAddr : TInAddr; namebuf : Array[0..255] of Ansichar; fd : integer; rc : integer; begin result := ''; rc := WSAStartup($101,varTWSAData); if rc <> 0 then // raise ESockUtilErr.CreateFmt( 'WSA Startup error: %d',[rc] ) else begin gethostname(namebuf,sizeof(namebuf)); varPHostEnt := gethostbyname(namebuf); varTInAddr.S_addr := u_long(pu_long(varPHostEnt^.h_addr_list^)^); result := inet_ntoa(varTInAddr); end; fd := WinSock.Socket( PF_INET, SOCK_STREAM, 0 ); if fd = INVALID_SOCKET then // raise ESockUtilErr.CreateFmt( '%d %d: Invalid socket',[fd,WSAGetLastError] ); WSACleanup; end;