小编给大家分享一下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");
}
看完了这篇文章,相信你对“C++怎样获取本机的IP地址”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。