获取计算机ip地址和计算机名字

 

 

#include <WinSock2.h>
#pragma comment(lib, "WS2_32")

 

WSADATA    WSAData;
    int WSAReturn ;
    char name[20];
    struct hostent *pSysinfo;
    char ipAddr[20];
    WSAReturn = WSAStartup(MAKEWORD(2,2),&WSAData);
    if(WSAReturn == 0)
    {
        gethostname(name,20);  //获取本地主机名
        m_strHostName = name;
    //    UpdateData(FALSE);
        pSysinfo = gethostbyname(name);
        sprintf(ipAddr,"%d.%d.%d.%d",
            pSysinfo->h_addr_list[0][0] & 0x00ff,
            pSysinfo->h_addr_list[0][1] & 0x00ff,
            pSysinfo->h_addr_list[0][2] & 0x00ff,
            pSysinfo->h_addr_list[0][3] & 0x00ff);
        m_strIP = ipAddr;
        UpdateData(FALSE);
    }

使用gethostbyaddr函数可以送网络地址得到对应的“主机”,这里得到的主机可能是多个而不止一个
struct HOSTENT* FAR gethostbyaddr{
    const char* addr; //<输入>指向网络字节顺序地址的指针
    int len; //地址长度
    int type;//地址类型,应为AF_INET
};

 

 
posted @ 2012-10-08 14:40  恒月美剑  阅读(257)  评论(1编辑  收藏  举报