C++如何獲取本機的IP地址
更新時間:2018年01月16日 11:52:26 作者:秦瑞It行程實錄
這篇文章主要為大家詳細介紹了C++如何獲取本機IP地址小程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文為大家分享了C++獲取本機的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];
//獲取本機主機名稱
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");
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
C++實現(xiàn)string存取二進制數(shù)據(jù)的方法
這篇文章主要介紹了C++實現(xiàn)string存取二進制數(shù)據(jù)的方法,針對STL中string的用法進行了較為詳細的分析,需要的朋友可以參考下2014-10-10
C語言之關于二維數(shù)組在函數(shù)中的調(diào)用問題
這篇文章主要介紹了C語言之關于二維數(shù)組在函數(shù)中的調(diào)用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

