获取本地IP地址在Delphi

获取本地IP地址在Delphi

问题描述:

可能重复:
Delphi, How to get all local IPs?获取本地IP地址在Delphi

什么是获得2009年德尔福机器的本地IP地址,而无需使用第三方组件的最简单&最快的方法是什么?谢谢。

+0

投票关闭为http://*.com/questions/576538/delphi-how-to-get-all-local-ips – mghie 2009-07-17 13:14:23

来源:http://www.scalabium.com/faq/dct0037.htm

uses 
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
    Dialogs, StdCtrls, Winsock; 

Function GetIPAddress():String; 
type 
    pu_long = ^u_long; 
var 
    varTWSAData : TWSAData; 
    varPHostEnt : PHostEnt; 
    varTInAddr : TInAddr; 
    namebuf : Array[0..255] of char; 
begin 
    If WSAStartup($101,varTWSAData) <> 0 Then 
    Result := 'No. IP Address' 
    Else Begin 
    gethostname(namebuf,sizeof(namebuf)); 
    varPHostEnt := gethostbyname(namebuf); 
    varTInAddr.S_addr := u_long(pu_long(varPHostEnt^.h_addr_list^)^); 
    Result := 'IP Address: '+inet_ntoa(varTInAddr); 
    End; 
    WSACleanup; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
    Label1.Caption := GetIPAddress; 
end; 

end. 
+3

重复改变namebuf的类型后到ansichar编译数组。谢谢! – Darius 2009-07-17 13:18:56