zoukankan      html  css  js  c++  java
  • 获取本机IP及在本机IP的基础上自增1(只针对有一个IP的机器)

    1、获取本机IP

     1 char* getLocalIP()
     2 {
     3     WSADATA wsaData;
     4     int err = WSAStartup(MAKEWORD(2, 0), &wsaData);
     5     if (err != 0)
     6     {
     7         OUTINFO_1_PARAM("ASTSWSAStartup执行错误%d
    ",err);
     8         return NULL;
     9     }
    10     //获取主机名
    11     char szHostName[256] = {0};
    12     int nRetCode;
    13     nRetCode = gethostname(szHostName,sizeof(szHostName) );
    14     if (nRetCode != 0)
    15     {
    16         OUTINFO_0_PARAM("ASTS获取主机名称失败
    ");
    17         WSAGetLastError(); 
    18         WSACleanup();
    19         return NULL; 
    20     }
    21 
    22     //获取本机IP
    23     char* lpLocalIP;
    24     PHOSTENT hostinfo;
    25     hostinfo = gethostbyname(szHostName);
    26     if (hostinfo != NULL)
    27     {
    28         lpLocalIP = inet_ntoa(*(struct in_addr*)*hostinfo->h_addr_list);
    29         OUTINFO_1_PARAM("ASTS主机名: %s
    ", szHostName);
    30         OUTINFO_1_PARAM("ASTS本地IP: %s
    ", lpLocalIP);
    31 
    32         WSACleanup();
    33         return lpLocalIP;
    34     }
    35     else
    36     {
    37         WSACleanup();
    38         return NULL;
    39     }
    40 }

    2、获取本机IP并在本机IP的基础上增加1

     1 char* getAddOneIP()
     2 {
     3     WSADATA wsaData;
     4     int err = WSAStartup(MAKEWORD(2, 0), &wsaData);
     5     if (err != 0)
     6     {
     7         OUTINFO_1_PARAM("ASTSWSAStartup执行错误%d
    ",err);
     8         return NULL;
     9     }
    10     //获取主机名
    11     char szHostName[256] = {0};
    12     int nRetCode;
    13     nRetCode = gethostname(szHostName,sizeof(szHostName) );
    14     if (nRetCode != 0)
    15     {
    16         OUTINFO_0_PARAM("ASTS获取主机名称失败
    ");
    17         WSAGetLastError(); 
    18         WSACleanup();
    19         return NULL; 
    20     }
    21 
    22     //获取本机IP
    23     char* lpLocalIP;
    24     PHOSTENT hostinfo;
    25     hostinfo = gethostbyname(szHostName);
    26     if (hostinfo != NULL)
    27     {
    28         lpLocalIP = inet_ntoa(*(struct in_addr*)*hostinfo->h_addr_list);
    29         OUTINFO_1_PARAM("ASTS主机名: %s
    ", szHostName);
    30         OUTINFO_1_PARAM("ASTS本地IP: %s
    ", lpLocalIP);
    31 
    32         struct in_addr nextIP = {0};
    33         memcpy(&nextIP, *hostinfo->h_addr_list, sizeof(nextIP));
    34         nextIP.s_impno ++;        //下一个IP
    35         char * lpNextIP = inet_ntoa(nextIP);
    36         OUTINFO_1_PARAM("ASTS返回出去的IP地址: %s
    ", lpNextIP);
    37         WSACleanup();
    38         return lpNextIP;
    39     }
    40     else
    41     {
    42         WSACleanup();
    43         return NULL;
    44     }
    45 }
  • 相关阅读:
    微信开放平台:OpenAPI、云开发与基础管理能力升级
    腾讯刘颖:从容器到低代码,腾讯云原生技术演进历程
    十年老站长心声:我为什么选择把 Hexo 网站迁移到 Webify
    腾讯云发布微搭生态开放计划,与合作伙伴携手共创产业未来
    SQL Server附加数据库出现错误5123的正确解决方法
    数据分页获取(二)
    Select语句
    数据分页获取(一)
    SQL Server中行转列原理
    QT实现Linux下系统监控小工具之二
  • 原文地址:https://www.cnblogs.com/LYF-LIUDAO/p/8464023.html
Copyright © 2011-2022 走看看