获取windows系统ip、计算机名、当前用户名

来源:互联网 发布:淘宝游戏币怎么交易 编辑:程序博客网 时间:2024/06/05 05:57

1、用gethostname函数获取计算机名,用gethostbyname函数获取当前系统ip

#include <iostream>using namespace std;#include "winsock2.h"#pragma comment(lib,"ws2_32.lib")int main(int argc, char* argv[]) {//初始化:如果不初始化,以下代码将无法执行WSAData data;if(WSAStartup(MAKEWORD(1,1),&data)!=0){cout<<"初始化错误,无法获取主机信息..."<<endl ;}char host[255];//获取主机名:也可以使用GetComputerName()这个函数if(gethostname(host,sizeof(host))==SOCKET_ERROR){cout<<"无法获取主机名..."<<endl;}else{cout<<"本机计算机名为:"<<host<<endl;}//获取计算机IP:gethostbyname也需要初始化(上面已初始化)struct hostent *p=gethostbyname(host);if(p==0){cout<<"无法获取计算机主机名及IP..."<<endl;}else{//获取本机计算机名//cout<<"本机计算机名为:"<<p->h_name<<endl;//本机IP:利用循环,输出本机所有IPfor(int i=0;p->h_addr_list[i]!=0;i++){struct in_addr in;memcpy(&in,p->h_addr_list[i],sizeof(struct in_addr));cout<<"第"<<i+1<<"块网卡的IP为:"<<inet_ntoa(in)<<endl;}}WSACleanup();}

2、用GetComputerName函数获取计算机名,用GetUserName函数获取当前用户名

#include <windows.h>#include <stdio.h>int main(int argc, char* argv[]) { const int MAX_BUFFER_LEN = 500;char  szBuffer[MAX_BUFFER_LEN];DWORD dwNameLen;dwNameLen = MAX_BUFFER_LEN;if (!GetComputerName((LPWSTR)szBuffer, &dwNameLen)) printf_s("Error  %d\n", GetLastError());elseprintf_s("计算机名为: %S\n", szBuffer);    //这里得到的应该是宽字符,用%ls或者%S,不然无法正常打印  dwNameLen = MAX_BUFFER_LEN;if (!GetUserName((LPWSTR)szBuffer, &dwNameLen))printf_s("Error  %d\n", GetLastError());elseprintf_s("当前用户名为:%S\n", szBuffer);  //这里得到的应该是宽字符,用%ls或者%S,不然无法正常打印  return 0;}


原创粉丝点击