获得电脑的名称和IP

更新时间:2023-04-22 11:01:01 阅读: 评论:0


2023年4月22日发(作者:旅游系统)

需要控件:

Button1

Button2

Edit1

Edit2

================================================

proc神行太保戴宗 edure 1Click(Sender: TObject);

var

s:array[1..127] of char;

i:DWord;

begin

//获取计算机名

GetComputerName(@s,i);

:=s;

end;

//处理点击修改按钮后的事件

procedure 2Click(Sender: TObject);

begin

//假设更改计宝刀不老的意思 算机名成功

if SetComputerName(PChar()) then

ShowMessage('您的计算机已改名为'+)

el

ShowMessage('改名失败');

end;

end.

delphi如何获得本机计算机名和IP

function GetLocalIP(var LocalIp: string): Boolean;

var

HostEnt: PHostEnt;

Ip: string;

addr: pchar;

Buffer: array [0..63] of char;

GInitData: TWSADATA;

begin

Result := Fal;

try

WSAStartup(2,白水煮虾的做法 GInitData);

GetHostName(Buffer, SizeOf(Buffer));

HostEnt := GetHostByName(buffer);

if HostEnt = nil then Exit;

addr := HostEnt^.h_addr_list^;

ip := Format('%d.%d.%d.%d', [byte(addr [0]),

byte (addr [1]), byte (addr [2]), byte (addr [3])]);

LocalIp := Ip;

Result := True;

finally

WSACleanup;

end;

end;

{==================================================文明演讲稿 ===============

: 通过Ip返回机器名

:

IpAdd小馄饨煮多久 r: 想要得到名字的Ip

返回值: 成功: 机器名 失败: ''

:

inet_addr function converts a string containing an Internet

Protocol dotted address into an in_addr.

:

1.0 2002/10/02 22:09:00心累了怎么办

=================================================================}

function GetNameByIPAddr(IPAddr : String;var MacName:String): Boolean;

var

SockAddrIn: TSockAddrIn;

HostEnt: PHostEnt;

WSAData: TWSAData;

begin

Result := Fal;

if IpAddr = '' then exit;

try

WSAStartup(2, WSAData);

_addr.s_addr := inet_addr(PChar(IPAddr));

HostEnt := gethostbyaddr(@_addr.S_addr, 4, AF_INET);

if HostEnt <> nil then

MacName := StrPas(Hostent^.h_name);

Result := True;

finally

WSACleanup;

end;

end;

{=================================================================

: 判断Ip协议有没有安装

:

返回值: 成功: True 失败: Fal;

: 该函数还有问题

:

1.0 2002/10/02 21:05:00

=========================================ps怎么瘦身 ========================}

Function IsIPInstalled : boolean;

var

WSData: TWSAData;

ProtoEnt: PProtoEnt;

begin

Result := True;

try

if WSAStartup(2,WSData) = 0 then

begin

ProtoEnt := GetProtoByName('IP');

if ProtoEnt = nil then

Result := Fal

end;

finally

WSACleanup;

end;

end;

{=================================================================

: 列举所有网络类型

:

List: 需要填充的List

返回值: 成功: True,并填充List 失败: Fal;

:

:

1.0 2002/10/03 08:54:00

=================================================================}

Function GetNetList(var List: Tstringlist): Boolean;

type

TNetResourceArray = ^TNetResource;//网络类型的数组

Var

p: TNetResourceArray;

Buf: Pointer;

i: SmallInt;

lphEnum: THandle;

NetResource: TNetResource;

Count,BufSize,Res: DWORD;

begin

Result := Fal;

;

Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_DISK,

RESOURCEUSAGE_CONTAINER, Nil,lphEnum);

if Res <> NO_ERROR then exit;//执行失败

Count := $FFFFFFFF;//不限资源数目

BufSize := 8192;//缓冲区大小设置为8K

GetMem(Buf, BufSize);//申请内存,用于获取工作组信息

Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);//获取网络类型信息

//资源列举完毕 //执行失败

if ( Res = ERROR_NO_MORE_ITEMS ) or (Res <> NO_ERROR ) then Exit;

P := TNetResourceArray(Buf);

for i := 0 to Count - 1 do//记录各个网络类型的信息

begin

(p^.lpRemoteName);

Inc(P);

end;

Res := WNetCloEnum(lphEnum); //关闭一次列举

if Res <> NO_ERROR then exit; //执行失败

Result := True;

FreeMem(Buf); //释放内存

end;

{=================================================================

: 映射网络驱动器

:

NetPath: 想要映射的网络路径

Password: 访问密码

Localpath 本地路径

返回值: 成功: True 失败: Fal;

:

:

1.0 2002/10/03 09:24:00

=================================================================}

Function NetAddConnection(NetPath: Pchar; PassWord: Pchar

;LocalPath: Pchar): Boolean;

var

Res: Dword;经典阅读

begin

Result := Fal;

Res := WNetAddConnection(NetPath,Password,LocalPath);

if Res <> No_Error then exit;

Result := True;

end;

朋友们在用Delphi编程序的时候,常常碰到需要在程序中获取自己的IP地址的情况。

在以往的版本中,可以通过编写一段代码或函数实现这一功能。但有了Delphi 7,这个工

作可以更简化了。利用控件只需一句代码,就可以非常方便地实现这一功能。

新建一Project1,在form1中添加控件statusbar

1(Win爱的教育读后感 32)和控件IdIPWatch1(Indy Misc)。接着设置好控件属性:在

statusbar1panels中添加0-TStatusPanel1-TStatusPanel两项;IdIPWatch1

HistoryEnabled的属性设为Fal

编写代码:在eate(Sender: TObject)中加入以下代码:

[1].Text:=P;

OK!按下F9功能键,运行程序,看一下窗口下边状态栏中是不是已经显示了本

机的IP地址了?

提示:若IdIPWatch1HistoryEnabled的属性设为True,则会在程序退出时,自

动生成一个文件(文件名为HistoryFileName属性设定的值),记录当前的IP地址。

procedure 1Click(Sender: TObject);

var

ComputerName :array[0..MAX_COMPUTERNAME_LENGTH + 1] of char;

sComputerName :string;

lpSize :DWORD;

sResult :string; //add by czf 1112

begin

lpSize := MAX_COMPUTERNAME_LENGTH + 1;

if GetComputerName(@ComputerName ,lpSize) then

begin

sComputerName := ComputerName;

end

el

begin

世界上最大的龟 sComputerName := '';

end;

// Result := sResult ;

showmessage(sComputerName);

end;

在使用此函数去前应先在 us 中添加 Winsock

function tIP:string;

var

WSAData:TWSAData;

HostName:array[0..MAX_COMPUTERNAME_LENGTH] of Char;

HostEnt:PHostEnt;

LastIP:PInAddr;

IPList:^PInAddr;

begin

result:='''';

if 0=WSAStartup(MAKEWORD(1,1), WSAData) then

try

if 0=gethostname(HostName, MAX_COMPUTERNAME_LENGTH+1) then

begin

HostEnt:=gethostbyname(HostName);

if HostEnt<>nil then

begin

IPList:=Pointer(HostEnt^.h_addr_list);

repeat

LastIP:=IPList^;

INC(IPList);

until IPList^=nil;

if LastIP<>nil then

result:=inet_ntoa(LastIP^);

end;

end;

finally

WSACleanup;

end;

end;


本文发布于:2023-04-22 11:01:01,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/842597.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:电脑名称
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图