如何得到本机 机器名称

kuangren 2004-09-17 08:44:42
如何得到本机 机器名称
...全文
207 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
纪俊 2004-09-17
  • 打赏
  • 举报
回复
我的方法不好用?
kuangren 2004-09-17
  • 打赏
  • 举报
回复
to:constantine(飘遥的安吉儿)
怎么我这里得出的是乱码呢?
wenyongjie 2004-09-17
  • 打赏
  • 举报
回复
这个方法最简单:
#include <Psock.hpp>
TPowersock *Powersock1=new TPowersock(this);
Form1->Caption =Form1->Caption+" 本机IP地址:"+ Powersock1->LocalIP;
delete Powersock1;

constantine 2004-09-17
  • 打赏
  • 举报
回复
String MyGetComputerName()
{
char buf[MAX_COMPUTERNAME_LENGTH + 1];
DWORD bufLength = MAX_COMPUTERNAME_LENGTH;
GetComputerName( buf, &bufLength);
return String(buf);
}
纪俊 2004-09-17
  • 打赏
  • 举报
回复
如果一定要用WinSock API:

得到本机名:
WSADATA WsaData;
WSAStartup(MAKEWORD(2,2),&WsaData);
char Name[256];
gethostname(Name,256);
Label1->Caption = AnsiString(Name);
WSACleanup();

得到指定IP的机器名:
WSADATA WsaData;
WSAStartup(MAKEWORD(2,2),&WsaData);
char Addr[]={192,168,1,40};
HOSTENT * host;
host = gethostbyaddr(Addr,4,AF_INET);
Caption = AnsiString(host->h_name);
WSACleanup();

注:
头文件:#include <Winsock2.h>;
库文件:Ws2_32.lib(在...\Borland\CBuilder5\Lib目录,加入到你的工程中)。

再补充一句:
用gethostbyaddr和gethostname得到的机器名是不一样的。
用gethostname得到的只是机器名,用gethostbyaddr得到的机器名中被加上了域名和DNS后。
在我的机器上,用gethostbyaddr,IP为127.0.0.1,得到的是MyComputer.MyDomain.xj.cnpc.com.cn(MyComputer是机器名,MyDomain是我的机器所在的域名),而用gethostname得到的只是MyComputer.

引用自plainsong(短歌)

或者
char host[128];
int Ret1=gethostname(host,128);//引用 BCB_FANS(四大名捕之追杀令)
纪俊 2004-09-17
  • 打赏
  • 举报
回复
char ComputerName[256];
GetComputerName(ComputerName,256);

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧