C++获取本机的ip地址程序

简介: #include #pragma comment(lib,"ws2_32") //链接到ws2_32动态链接库class CInitSock{public: CInitSock(BYTE minorVer = 2,BYTE majorVer = 2) { ...
#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");
}

源代码文件

目录
相关文章
|
23天前
|
编译器 C++
《Effective C++ 改善程序与设计的55个具体做法》 第一章 笔记
《Effective C++ 改善程序与设计的55个具体做法》 第一章 笔记
|
13天前
|
C语言 图形学 C++
|
18天前
|
编译器 C++
C++:继承性_程序
C++:继承性_程序
13 1
|
23天前
|
存储 算法 程序员
【C++进阶】深入STL之vector:构建高效C++程序的基石
【C++进阶】深入STL之vector:构建高效C++程序的基石
17 1
|
9天前
|
编译器 C++
【C++】类和对象④(类的默认成员函数:取地址及const取地址重载 )
本文探讨了C++中类的成员函数,特别是取地址及const取地址操作符重载,通常无需重载,但展示了如何自定义以适应特定需求。接着讨论了构造函数的重要性,尤其是使用初始化列表来高效地初始化类的成员,包括对象成员、引用和const成员。初始化列表确保在对象创建时正确赋值,并遵循特定的执行顺序。
|
10天前
|
存储 算法 编译器
程序与技术分享:C++模板元编程简介
程序与技术分享:C++模板元编程简介
|
10天前
|
存储 JavaScript 前端开发
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
|
10天前
|
自然语言处理 C语言 C++
程序与技术分享:C++写一个简单的解析器(分析C语言)
程序与技术分享:C++写一个简单的解析器(分析C语言)
|
10天前
|
存储 算法 编译器
程序与技术分享:C++模板元编程学习笔记
程序与技术分享:C++模板元编程学习笔记