本文為大家分享了C++獲取本機(jī)的ip地址程序,供大家參考,具體內(nèi)容如下
頭文件
#include <WinSock2.h>#pragma comment(lib,"ws2_32")//鏈接到ws2_32動態(tài)鏈接庫class CInitSock{public: CInitSock(BYTE minorVer = 2,BYTE majorVer = 2) { WSADATA wsaData; WORD VersionRequset; VersionRequset = MAKEWORD(minorVer,majorVer); //裝載winsock庫 if (WSAStartup(VersionRequset,&wsaData)!=0) { //裝載winsock庫失敗,推出 exit(0); } } ~CInitSock() { WSACleanup(); }};源代碼文件
#include <iostream>#include "a.h"using namespace std;CInitSock Initsock;bool GetIp();int main(){ GetIp(); return 0;}bool GetIp(){ char szText[256]; //獲取本機(jī)主機(jī)名稱 int iRet; iRet = gethostname(szText,256); int a = WSAGetLastError(); if (iRet!=0) { printf("gethostname() Failed!"); return FALSE; } //通過主機(jī)名獲取到地址信息 HOSTENT *host = gethostbyname(szText); if (NULL==host) { printf("gethostbyname() Failed!"); return false; } in_addr PcAddr; for (int i=0;;i++) { char *p = host->h_addr_list[i]; if (NULL==p) { break; } memcpy(&(PcAddr.S_un.S_addr),p,host->h_length); char*szIP = ::inet_ntoa(PcAddr); printf("本機(jī)的ip地址是:%s/n",szIP); } system("pause");}以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答