我看msdn上说,在多网卡的机器上,用gethostbyname()可以得到一个地址列表,如果可以的话,加上modem应该也是可以的。
但我看了半天,没看出来怎么得到列表 :(

解决方案 »

  1.   

    在本机的IP地址列表中,是不是最后一个是互联网的IP地址(不是网卡的).
      

  2.   

    如果是编程的话,在有网卡和MODEM的机器上应该需要判断设备类型,
    我没有试过,不知道。
      

  3.   

    hostent中就包含了本机的所有IP啊。看看hostent结构的定义吧。
      

  4.   

    strIPAddr=inet_ntoa(*(struct in_addr *)hn->h_addr_list[x]);
    在h_addr_list[x]中,你把他放到FOR中一个一个地读就可以了
      

  5.   

    我通过局域网上网,也只返回一个IP地址。
    >>ZHLMNET(游水去喏!!!!)
      麻烦问一下怎么取h_addr_list[x]的x,新手讨教,请勿嫌弃。
      

  6.   

    如果你用moden上网,一般最后一个地址就是分配给你的地址。
    h_addr_list是一个指针数组,可以通过他对指向是否为空
    来判断是不是到了最合一个。
      

  7.   

    老掉牙的问题
    http://www.csdn.net/expert/topic/134/134217.shtm
    http://www.csdn.net/expert/topic/139/139170.shtm
    ......
      

  8.   

    /*得到拨号网络的本地地址*/
    unsigned long GetLocalIP()
    {
        unsigned long re=0;
        RASCONN  conn;
        conn.dwSize=sizeof(RASCONN);
        DWORD size,count;
        if(RasEnumConnections(&conn,&size,&count)==0)  //取得拨号连接
        {
            RASPPPIP ip;
            ip.dwSize=sizeof(RASPPPIP);
            size=ip.dwSize;
            int err=RasGetProjectionInfo(conn.hrasconn,RASP_PppIp,&ip,&size);
            if(err==0)  //取得IP地址
            {
                if(ip.dwError==0)
                    re=inet_addr(ip.szIpAddress);
            }
        }
        return re;