C++ 获取windows一些基本信息

本文详细介绍了如何从本地计算机中获取主机名、IP地址和MAC地址,并通过系统版本检查来验证获取过程的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 获得本机主机名

GetModuleFileName(NULL,info.InstallPath,128);//程序运行路径

GetUserName(user_name, &dwBufferLen);//用户名

char hostname[MAX_PATH] = { 0 };

gethostname(hostname, MAX_PATH);//主机名

GetComputerName(hostname, &dwBufferLen);//主机名

2.根据主机名获取IP

struct hostent FAR* lpHostEnt = gethostbyname(hostname);
// 取得IP地址列表中的第一个为返回的IP(因为一台主机可能会绑定多个IP)

LPSTR lpAddr = lpHostEnt->h_addr_list[0];

// 将IP地址转化成字符串形式
struct in_addr inAddr;
memmove(&inAddr, lpAddr, 4);
char* m_strIP = inet_ntoa(inAddr)

3.根据IP获取MAC

HRESULT hResult;
IPAddr ipAddr;
ULONG pulMAC[2];
ULONG ulLen;
char strMacAddr[100] = { 0 };
ipAddr = inet_addr((char*)hostIP);
memset(pulMAC, 0, sizeof(pulMAC));
ulLen = 6;
hResult = SendARP(ipAddr, 0, pulMAC, &ulLen);
if (hResult = NO_ERROR)
{
printf("find nithing!\n");
return;
}
unsigned char * mac_addr = (unsigned char*)pulMAC;
sprintf_s(strMacAddr, "%.2x-%.2x-%.2x-%.2x-%.2x-%.2x\n", mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
memcpy_s(info.mac_addr, sizeof(info.mac_addr), strMacAddr, sizeof(info.mac_addr));

4.获取系统版本

OSVERSIONINFO osver = { sizeof(OSVERSIONINFO) };
GetVersionEx(&osver);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值