用Delphi獲取本地計算機名稱和IP地址

用Delphi獲取本地計算機名稱和IP地址,第1張

用Delphi獲取本地計算機名稱和IP地址,第2張

此過程描述了如何獲取本地計算機的名稱和IP地址。

在表單中添加兩個TLabel組件、兩個TEdit組件和一個TButton組件,設計的主界麪如圖1所示。


圖1主界麪
首先在程序的uses部分添加一個對WinSock的引用,然後添加一個GetHostName自定義函數,其中調用GetComputerName函數獲取計算機名。響應代碼如下:

函數TfrmMain。get hostname:String;
var
計算機名:數組[0..MAX _ computer name _ LENGTH 1];
大小:樞機主教;
begin
result:= ' ';
Size:= MAX _ computer name _ LENGTH 1;
get computer name(computer name,Size);
Result:= StrPas(computer name);
end;
添加NameToIP自定義函數,在該函數中調用GetHostByName函數根據計算機的名稱獲取其IP地址。響應代碼如下:

函數TfrmMain。NameToIP(Name:String):String;
var
wsa data:tws adata;
HostEnt:phos tent;
begin
result:= ' ';
WSAStartup(2,wsa data);
HostEnt:= GetHostByName(PChar(Name));
如果HostEnt爲空,則
從HostEnt^ do開始

結果:= format('%d.%d.%d.%d',[byte(h_addr^[0]),byte(h_addr^[1]),byte(h_addr^[2]),byte(h_addr^[3])]);
end;
WSACleanup;
end;
程序代碼如下:

unit Unit1
接口
用途

窗口、消息、系統工具、變量、類、圖形、控件、表單、對話框、StdCtrls、WinSock。
type
TfrmMain = class(t form)
Bt nstart:TButton;
ed tip:TEdit;
ed tname:TEdit;
label 1:t label;
label 2:t label;
function get hostname:String;
procedure btnstart click(Sender:to object);
函數名to IP(Name:String):String;
私有
{私有聲明}
公共
{公共聲明}
end;

var
frm main:TfrmMain;
實現
{$R *。dfm}
函數TfrmMain。get hostname:String;
var
計算機名:數組[0..MAX _ computer name _ LENGTH 1];
大小:樞機主教;
begin
result:= ' ';
Size:= MAX _ computer name _ LENGTH 1;
get computer name(computer name,Size);
Result:= StrPas(computer name);
end;

過程TfrmMain.btnStartClick(發送方:to object);
begin
ed name。text:= get hostname;
edtIP。text:= NameToIP(ed name。正文);
end;

函數TfrmMain。NameToIP(Name:String):String;
var
wsa data:tws adata;
HostEnt:phos tent;
begin
result:= ' ';
WSAStartup(2,wsa data);
HostEnt:= GetHostByName(PChar(Name));
如果HostEnt爲空,則
從HostEnt^ do開始

result:= format('%d.%d.%d.%d',[byte(h_addr^[0]),byte(h_addr^[1]),
byte(h_addr^[2]),byte(h_addr^[3]]);
end;
WSACleanup;
end;
結束。

位律師廻複

生活常識_百科知識_各類知識大全»用Delphi獲取本地計算機名稱和IP地址

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情