#include <iostream> #include <string> #include <vector> #include <atlstr.h> #include <winsock2.h> #pragma comment(lib,"ws2_32.lib") using namespace std; int main(int argc, char* argv[]) { CString m_IP; //IP地址临时变量 CString m_LocalIP; char PCnameBuffer[128]; //获得本地计算机名 CString m_PCname; WSAData data; //初始化:如果不初始化,以下代码将无法执行 if (WSAStartup(MAKEWORD(1, 1), &data) != 0) { cout << "初始化错误,无法获取主机信息..." << endl; } else { if (0 == gethostname(PCnameBuffer, 128)) { m_PCname = PCnameBuffer; struct hostent* pHost; //获得本地IP地址 pHost = gethostbyname(PCnameBuffer); //pHost返回的是指向主机的列表 for (int i = 0; pHost != NULL&&pHost->h_addr_list[i] != NULL; i++) { //得到指向ip的psz变量 LPCSTR psz = inet_ntoa(*(struct in_addr *)pHost->h_addr_list[i]); m_IP += psz; } m_LocalIP = m_IP; } else { cout << "获取主机信息失败..." << endl; } } USES_CONVERSION; //声明使用T2A函数 char* ComputerName = T2A(m_PCname); //T2A函数,将Cstring类型转换为char* char* ComputerIp = T2A(m_LocalIP); cout << ComputerName << endl; return 0; }