C++如何获取本机的IP地址

时间:2021-05-20

本文为大家分享了C++获取本机的ip地址程序,供大家参考,具体内容如下

头文件

#include <WinSock2.h>#pragma comment(lib,"ws2_32")//链接到ws2_32动态链接库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]; //获取本机主机名称 int iRet; iRet = gethostname(szText,256); int a = WSAGetLastError(); if (iRet!=0) { printf("gethostname() Failed!"); return FALSE; } //通过主机名获取到地址信息 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("本机的ip地址是:%s\n",szIP); } system("pause");}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章