如何查询当前电脑的具体IP地址信息?
- 内容介绍
- 文章标签
- 相关推荐
本文共计353个文字,预计阅读时间需要2分钟。
cpp#include #include #include #include
void printMachineIP() { std::string ip; struct ifaddrs *ifaddr, *ifa; int family, s; char host[NI_MAXHOST];
if ((s=getaddrinfo(NULL, NULL, &hints, &ifaddr)) !=0) { std::cerr << getaddrinfo: < for (ifa=ifaddr; ifa !=NULL; ifa=ifa->ifa_next) { if (ifa->ifa_addr==NULL) continue; family=ifa->ifa_addr->sa_family; if (family==AF_INET) { struct sockaddr_in *ipv4=(struct sockaddr_in *)ifa->ifa_addr; if (inet_ntop(AF_INET, &ipv4->sin_addr, host, NI_MAXHOST) !=NULL) { ip=host; } } } std::cout << Machine IP: < freeaddrinfo(ifaddr);} 本文为大家分享了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");
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。
本文共计353个文字,预计阅读时间需要2分钟。
cpp#include #include #include #include
void printMachineIP() { std::string ip; struct ifaddrs *ifaddr, *ifa; int family, s; char host[NI_MAXHOST];
if ((s=getaddrinfo(NULL, NULL, &hints, &ifaddr)) !=0) { std::cerr << getaddrinfo: < for (ifa=ifaddr; ifa !=NULL; ifa=ifa->ifa_next) { if (ifa->ifa_addr==NULL) continue; family=ifa->ifa_addr->sa_family; if (family==AF_INET) { struct sockaddr_in *ipv4=(struct sockaddr_in *)ifa->ifa_addr; if (inet_ntop(AF_INET, &ipv4->sin_addr, host, NI_MAXHOST) !=NULL) { ip=host; } } } std::cout << Machine IP: < freeaddrinfo(ifaddr);} 本文为大家分享了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");
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

