zoukankan      html  css  js  c++  java
  • 常用函数-Win-IP

    //*************************************************************************
    // 函数名:    GetAppPath
    // 返回值:    const char*    --返回程序所在目录
    // 描述:      获取程序所在目录
    //*************************************************************************
    const char* DPC::GetAppPath()
    {
        static std::string strPath("");
        if(strPath.empty())
        {
            char szFileName[MAX_PATH];  
            GetModuleFileName(NULL,   szFileName,   sizeof(szFileName));  
    
            strPath = szFileName;
            size_t nPos = strPath.find_last_of('\');
            if (nPos != std::string::npos){
                strPath = strPath.substr(0, nPos);
            }
        }
        return strPath.c_str();
    }
    /************************************************************************
    函数功能:获取本机IP地址
    输出参数:char* ip             -- 本机IP地址
    返回值  :
    ************************************************************************/
    bool GetLocalIP(char* ip)
    {
        //1.初始化wsa  
        WSADATA wsaData;
        int ret = WSAStartup(MAKEWORD(2, 2), &wsaData);
        if (ret != 0)
        {
            return false;
        }
        //2.获取主机名  
        char hostname[256];
        ret = gethostname(hostname, sizeof(hostname));
        if (ret == SOCKET_ERROR)
        {
            return false;
        }
        //3.获取主机ip  
        HOSTENT* host = gethostbyname(hostname);
        if (host == NULL)
        {
            return false;
        }
        //4.转化为char*并拷贝返回  
        strcpy(ip, inet_ntoa(*(in_addr*)*host->h_addr_list));
    
        return true;
    }
    /************************************************************************
    函数功能:整形转ip字符
    输出参数:char* ip             -- 本机IP地址
    返回值  :
    ************************************************************************/
    void DPC::sin2StrAddrIp(char* ip, int nLen, unsigned long nAddr )
    {
        _snprintf_s(ip, nLen, 20, "%u.%u.%u.%u",
            *((unsigned char *)(&nAddr) + 0 ),
            *((unsigned char *)(&nAddr) + 1 ),
            *((unsigned char *)(&nAddr) + 2 ),
            *((unsigned char *)(&nAddr) + 3 ));
    }
  • 相关阅读:
    Kafka速览
    分布式消息中间件(二)ActiveMQ
    PageUtil 分页
    Tomcat配置
    CryptographyUtil盐加密
    InitComponent的使用
    Shiro权限总结
    【转】Java自学之路——by马士兵
    ExcelUtil
    Java操作Excel之Poi
  • 原文地址:https://www.cnblogs.com/osbreak/p/10061486.html
Copyright © 2011-2022 走看看