C++获取系统信息(IP地址、硬件信息等)
#include<stdio.h>
#include<winsock2.h> //该头文件需在windows.h之前
#include<windows.h>
#include<string>
#include<iostream>
#pragma comment(lib,"ws2_32.lib")
using namespace std; void getIP()
{
WSADATA WSAData; //WSADATA结构被用来储存调用AfxSocketInit全局函数返回的Windows Sockets初始化信息。
if (WSAStartup(MAKEWORD(, ),&WSAData)) // 初始化Windows sockets API
{
printf("WSAStartup failed %s\n", WSAGetLastError());
exit(-); //异常退出
} char hostName[];
if(gethostname(hostName,sizeof(hostName))) //获取主机名
{
printf("Error: %u\n", WSAGetLastError());
exit(-); //异常退出
}
printf("主机名: %s\n", hostName); hostent *host=gethostbyname(hostName); // 根据主机名获取主机信息.
if(host==NULL)
{
printf("Error: %u\n", WSAGetLastError());
exit(-);
} cout<<"主机地址类型: "<<host->h_addrtype<<endl
<<"地址清单: "<<host->h_addr_list<<endl
<<"别名列表: "<<host->h_aliases<<endl
<<"地址长度: "<<host->h_length<<endl
<<"正式的主机名: "<<host->h_name<<endl; for(int i=;host->h_addr_list[i]!=;i++)
{
cout<<"该主机IP"<<i+<<": "<<inet_ntoa(*(struct in_addr*)*host->h_addr_list)<<endl;
}
cout<<"-----------------------------------------------"<<endl;
WSACleanup();
}
void getSysInfo()
{
SYSTEM_INFO sysInfo; //该结构体包含了当前计算机的信息:计算机的体系结构、中央处理器的类型、系统中中央处理器的数量、页面的大小以及其他信息。
OSVERSIONINFOEX osvi;
GetSystemInfo(&sysInfo);
osvi.dwOSVersionInfoSize=sizeof(osvi);
if (GetVersionEx((LPOSVERSIONINFOW)&osvi))
{
printf("操作系统版本 : %u.%u.%u\n", osvi.dwMajorVersion, osvi.dwMinorVersion,osvi.dwBuildNumber);
printf("Service Pack : %u.%u\n", osvi.wServicePackMajor, osvi.wServicePackMinor);
}
printf("处理器架构 : %u\n", sysInfo.wProcessorArchitecture);
printf("处理器级别 : %u\n", sysInfo.wProcessorLevel);
printf("处理器版本 : %u\n", sysInfo.wProcessorRevision);
printf("处理器掩码 : %u\n", sysInfo.dwActiveProcessorMask);
printf("处理器数量 : %u\n", sysInfo.dwNumberOfProcessors);
printf("处理器类型 : %u\n", sysInfo.dwProcessorType);
printf("页面大小 : %u\n", sysInfo.dwPageSize);
printf("应用程序最小地址 : %u\n", sysInfo.lpMinimumApplicationAddress);
printf("应用程序最大地址 : %u\n", sysInfo.lpMaximumApplicationAddress);
printf("虚拟内存分配粒度 : %u\n", sysInfo.dwAllocationGranularity);
printf("OemId : %u\n", sysInfo.dwOemId);
printf("wReserved : %u\n", sysInfo.wReserved);
}
int main()
{
getIP();
getSysInfo();
return ;
}
参考文献:https://blog.csdn.net/lynch0571
C++获取系统信息(IP地址、硬件信息等)的更多相关文章
- 获取本地IP地址信息
2012-06-05 /// <summary> /// 获取本地IP地址信息 /// </summary> void G ...
- 获取客户端IP地址定位城市信息
获取客户端IP地址定位城市信息 1.首先获取客户端的IP地址 function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (iss ...
- PHP 获取IP地址位置信息「聚合数据API」
聚合数据 提供了[查询IP所属区域]的服务接口,只需要以 GET 请求的方式向 API 传入 IP地址 和 APPKEY 即可获得查询结果. 这里的难点主要在于如何通过PHP获取客户端IP地址,以及如 ...
- (效果五)js获取客户端ip地址及浏览器信息
在前端开发的时候,有时候为了测试需要得到访问客户的ip地址.虽说是后端来做的,但是我们前端也可以完成. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器的支持情况 ...
- Linux下的C Socket编程 -- 获取对方IP地址
Linux下的C Socket编程(二) 获取域名对应的IP地址 经过上面的讨论,如果我们想要连接到远程的服务器,我们需要知道对方的IP地址,系统函数gethostbyname便能够实现这个目的.它能 ...
- JAVA获取客户端IP地址
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...
- (转)【ASP.NET开发】获取客户端IP地址 via C#
[ASP.NET开发]获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己 ...
- 获取客户端IP地址 via C#
获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己在项目中做过的事情,同 ...
- JAVA获取客户端IP地址和MAC地址
1.获取客户端IP地址 public String getIp(HttpServletRequest request) throws Exception { String ip = request.g ...
随机推荐
- windows下tomcat+nginx+openssl配置双向认证
1. 基础知识 CA证书:https://blog.csdn.net/yangyuge1987/article/details/79209473 SSL双向认证原理:https://blog.csdn ...
- 双向循环链表涉及双向指针的基本操作(C语言)
链表大概分为有无头指针,有无尾指针,是否循环,单向还是双向, 这些都很简单,前提是你要把指针和单链表理解透彻.这些都是基于单链表 的变形,要根据实际问题,选择链表的类型. 头指针的指针域储存着储存头节 ...
- 762. Prime Number of Set Bits in Binary Representation
static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...
- Router types
Inq-n. Flits are stored at the input of the router. Each input unit is connected to the switch by as ...
- js判断软键盘是否开启弹出
移动端关于页面布局,如果底部有position:fixed的盒子,又有input,当软键盘弹出收起都会影响页面布局.这时候Android可以监听resize事件,代码如下,而ios没有相关事件. va ...
- typecho 文章归档调用
<style> div { display: block; } .title { position: relative; margin: 0; line-height: 32px; fon ...
- C#的委托与Java的自定义接口的异曲同工的同步操作
C#的委托(以WinForm为例) 在子窗体(ChildFrm)中定义一个委托 this.CaptureListener(callback);//子窗体触发委托事件,以告诉调用的窗体 /// < ...
- java web 大文件下载
泽优大文件下载产品测试 泽优大文件下载控件down2,基于php开发环境测试. 开发环境:HBuilder 服务器:wamp64 数据库:mysql 可视化数据库编辑工具:Navicat Premiu ...
- __cxa_call_unexpected原因
coredump的调用栈: #0 0xf76f5440 in __kernel_vsyscall () #1 0xf73c4657 in raise () from /lib/libc.so.6 ...
- LCA tarjan+并查集POJ1470
LCA tarjan+并查集POJ1470 https://www.cnblogs.com/JVxie/p/4854719.html 不错的一篇博客啊,让我觉得LCA这么高大上的算法不是很难啊,嘻嘻嘻 ...