#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地址、硬件信息等)的更多相关文章

  1. 获取本地IP地址信息

    2012-06-05    /// <summary>         /// 获取本地IP地址信息         /// </summary>         void G ...

  2. 获取客户端IP地址定位城市信息

    获取客户端IP地址定位城市信息 1.首先获取客户端的IP地址 function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (iss ...

  3. PHP 获取IP地址位置信息「聚合数据API」

    聚合数据 提供了[查询IP所属区域]的服务接口,只需要以 GET 请求的方式向 API 传入 IP地址 和 APPKEY 即可获得查询结果. 这里的难点主要在于如何通过PHP获取客户端IP地址,以及如 ...

  4. (效果五)js获取客户端ip地址及浏览器信息

    在前端开发的时候,有时候为了测试需要得到访问客户的ip地址.虽说是后端来做的,但是我们前端也可以完成. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器的支持情况 ...

  5. Linux下的C Socket编程 -- 获取对方IP地址

    Linux下的C Socket编程(二) 获取域名对应的IP地址 经过上面的讨论,如果我们想要连接到远程的服务器,我们需要知道对方的IP地址,系统函数gethostbyname便能够实现这个目的.它能 ...

  6. JAVA获取客户端IP地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  7. (转)【ASP.NET开发】获取客户端IP地址 via C#

    [ASP.NET开发]获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己 ...

  8. 获取客户端IP地址 via C#

    获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己在项目中做过的事情,同 ...

  9. JAVA获取客户端IP地址和MAC地址

    1.获取客户端IP地址 public String getIp(HttpServletRequest request) throws Exception { String ip = request.g ...

随机推荐

  1. 初识jvm堆,栈参数

    堆的分配参数: -Xmx //设立最大堆 -Xms //最小堆,初始化堆大小 -Xmn  //设置新生代(eden+2*surviivor+old)大小   官方推荐:3/8Xmx------> ...

  2. Windows 8 Stroe Apps 控件

    重新想象 Windows 8 Store Apps (3) - 控件之内容控件: ToolTip, Frame, AppBar, ContentControl, ContentPresenter; 容 ...

  3. 通过html文件生成PDF文件

    /// <summary> /// 获取html内容,转成PDF(注册) /// </summary> public void DownloadPDFByHTML(string ...

  4. 蓝绿部署、红黑部署、AB测试、灰度发布、金丝雀发布、滚动发布的概念与区别(转)

    出处:https://www.baidu.com/link?url=QjboallwNm_jxcL3fHG57wEakiBfAs_3-TChTGu1eBXstlHEsGBc-NDA7AKTqsiroB ...

  5. Docker Compose demo 使用

    1.docker compose 安装 curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker- ...

  6. innodb mvcc多版本实现

    出自:http://hedengcheng.com/?p=148 基本知识 假设对于多版本(MVCC)的基础知识,有所了解.InnoDB为了实现多版本的一致读,采用的是基于回滚段的协议. 行结构 In ...

  7. 开发.Net Script 模板-MyGeneration (翻译)

    原文信息 原文地址 原文作者信息 Justin Greenwood MyGeneration Software http://www.mygenerationsoftware.com/ October ...

  8. Ng第十五课:异常检测(Anomaly Detection)

    15.1  问题的动机 15.2  高斯分布 15.3  算法 15.4  开发和评价一个异常检测系统 15.5  异常检测与监督学习对比 15.6  选择特征 15.7  多元高斯分布(可选) 15 ...

  9. Update Node.js Package.json

    Update the latest package while using node.js, follow the command as following. npm i -g npm-check-u ...

  10. (转)Tomcat(java运行环境)安装及配置教程

    转自:http://jingyan.baidu.com/article/870c6fc33e62bcb03fe4be90.html 用来进行web开发的工具有很多,Tomcat是其中一个开源的且免费的 ...