본문 바로가기

Windows/Windows API

local ip address (wince)

std::string strIp;

    //Init winsock
    WSADATA wsaData;
    int nErrorCode = WSAStartup(MAKEWORD(1,1), &wsaData);
    if (nErrorCode != 0) {
        //Cannot initialize winsock
        //return _T("");
    }

    char strHostName[81];
    if (gethostname(strHostName, 80)==0)
    {
        hostent *pHost = gethostbyname(strHostName);
        if (pHost->h_addrtype == AF_INET)
        {
            in_addr **ppip=(in_addr**)pHost->h_addr_list;

            //Enumarate all addresses
            while (*ppip)
            {
                in_addr ip = **ppip;

                strIp = inet_ntoa(ip);
                //strIp = CString(inet_ntoa(ip));
                ppip++;
                if (strIp != "") {
                    break;
                }
            }
        }
    }

    std::cout << strIp.c_str() << endl;

'Windows > Windows API' 카테고리의 다른 글

pipe  (0) 2013.10.01
disk free space (wince)  (0) 2013.10.01
camel CPU info  (0) 2013.10.01
CenterWindow  (0) 2013.10.01
DrawTransparentBitmap  (0) 2013.10.01