zoukankan      html  css  js  c++  java
  • 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
    ",szIP);
        }
    
        system("pause");
    }

    源代码文件

  • 相关阅读:
    PLL详解
    CSI-2 协议
    C语言volatile关键字的用法
    联合体(union)的使用方法及其本质
    Linux驱动之LED驱动编写
    insmod 和第一个驱动
    黑电平校正BLC
    什么是HDR?
    使用starUML画顺序图
    UML 资料整理
  • 原文地址:https://www.cnblogs.com/ruiy/p/8295760.html
Copyright © 2011-2022 走看看