请问如何把整型的ip的值转换成一个IP地址
例如676879571 转换成 211.92.88.40
我使用inet_ntoa的时候报错,无法将无符号整型转换成struct in_addr
具体我该怎么做呢?例如这个:inet_ntoa(ui.m_local_addr)

解决方案 »

  1.   

    IP地址是32位的,
    整形676879571二进制表示就是00101000 01011000 01011100 11010011
    按照8位一组可表示为40 88 92 211
    由于CPU处理数据的差异,它的顺序十颠倒的,所有最终格式为211.92.88.40
    这就是,按照“点分十进制”记法的表达形式
      

  2.   

    具体该怎样使用inet_ntoa才能转换过来呢?
      

  3.   

    SOCKADDR_IN InternetAddr;
    InternetAddr.sin_addr.s_addr = htonl(676879571);
    char * ip=inet_ntoa(InternetAddr.sin_addr)
      

  4.   


    char strIp[64];
    in_addr in;
    in.S_un.S_addr = 676879571;
    strcpy(strIp,inet_ntoa(in));
      

  5.   

    谢谢楼上,为什么我获取到的IP是反过来的呢?但是用676879571获取到的IP又是211.92.88.40