C++ 獲取本機ip地址
阿新 • • 發佈:2018-11-01
C++/MFC 獲取本地計算機的所有IP
string m_LocalIP1;//IP地址臨時變數 string m_LocalIP2; LPCSTR psz; //獲得本地計算機名 char PCnameBuffer[128]; string m_PCname; //初始化:如果不初始化,以下程式碼將無法執行 WSAData data; if (WSAStartup(MAKEWORD(1, 1), &data) != 0) { /*cout << "初始化錯誤,無法獲取主機資訊..." << endl;*/ } else if (0 == gethostname(PCnameBuffer, 128)) { m_PCname = PCnameBuffer; //獲得本地IP地址 struct hostent* pHost; int i; pHost = gethostbyname(PCnameBuffer);//pHost返回的是指向主機的列表 for (i = 0; pHost != NULL&&pHost->h_addr_list[i] != NULL; i++) { if (i == 1) { psz = inet_ntoa(*(struct in_addr *)pHost->h_addr_list[1]);//得到指向ip的psz變數 m_LocalIP2 = psz; } else { psz = inet_ntoa(*(struct in_addr *)pHost->h_addr_list[0]);//得到指向ip的psz變數 m_LocalIP1 = psz; } } }