本文为大家分享了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地址是:%sn",szIP);
}
system("pause");
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- C/C++ ip地址与int类型的转换实例详解
- C++获得本机所有网卡的IP和MAC地址信息的实现方法
- c/c++实现获取域名的IP地址
- C++获取本机MAC,IP,MASK地址的方法