用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;
结束。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 用Delphi获取本地计算机名称和IP地址

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情