这个程序以前都是好使的,今天不知道为什么???

解决方案 »

  1.   

    你到这里看看也行
    http://www.ccw.com.cn/htm/produ/special/VC/jiqiao/01_9_14_16.asp
      

  2.   

    如何得到多穴主机的多个IP地址
    闻怡洋 
    void print_all_ip(void) 

    char szHostName[128]; 
    const char* pszAddr; 
    struct hostent * pHost;  
    int i,j;  
    if( gethostname(szHostName, 128) == 0 ) 

    pHost = gethostbyname(szHostName);  
    for( i = 0; pHost!= NULL && pHost->h_addr_list[i]!= NULL; i++ )  
    {/*对每一个IP地址进行处理*/ 
    pszAddr=inet_ntoa (*(struct in_addr *)pHost->h_addr_list[i]); 
    printf("%s\n",pszAddr);/*打印*/ 


      

  3.   

    thank you 鸭蛋,可是我就是这样处理的,EMAIL:[email protected]
      

  4.   

    我试了,但有一下错误不只是为什么?
    error LNK2001: unresolved external symbol __imp__inet_ntoa@4
    error LNK2001: unresolved external symbol __imp__gethostbyname@4
    error LNK2001: unresolved external symbol __imp__gethostname@8
    error LNK2001: unresolved external symbol __imp__WSAStartup@8
    Debug/ip.exe : fatal error LNK1120: 5 unresolved externals
      

  5.   

    oh!你没有包含afxsock.h在stdafx.h中
      

  6.   

    如果你让socket自动绑定本机ip,在本机与其他计算机建立连接之前,或建立联系之前,用gethostname()并不能得到正确的名称
      

  7.   

    楼上的意思是说要使用gethostname 就必须先先与其他的计算机建立SOCK 连接吗?
      

  8.   

    在你的VC中,project,settings,选择link标签,在object/libary modules中,加入ws2_32.lib。再重新编译
      

  9.   

    在你的VC中,project,settings,选择link标签,在object/libary modules中,加入ws2_32.lib。再重新编译
      

  10.   

    也不是,有时候你采取socket自动获取本机ip的方式,而不是明确绑定,好像需要这样,你可以试试,说不准
      

  11.   

    也不是,有时候你采取socket自动获取本机ip的方式,而不是明确绑定,好像需要这样,你可以试试,说不准
      

  12.   

    在你的VC中,project,settings,选择link标签,在object/libary modules中,加入ws2_32.lib。再重新编译
      

  13.   

    char Hostname[256];
    HOSTENT*          pHost;
    in_addr address;

    gethostname(Hostname,sizeof(szHostname));
    pHost = gethostbyname(szHostname);
    if(pHostEnt==NULL) return false;
      

  14.   

    对不起,我搞错了,能不能发代码给我。
    [email protected]
      

  15.   

    出错程序的代码,没道理的呀,好像和socket没什么关系
      

  16.   

    BYTE strName[20];
    int iResult;
    memset((void *)strName,0,sizeof(strName));
    iResult = gethostname((char *)strName,sizeof(strName));
      

  17.   

    没有问题呀,
    我加上了AfxMessageBox((char *)strName);
    显示出了我的机器名
      

  18.   

    不会吧!!!!我就是随便在一个以前的程序上的DLG上做了一个按钮后加上的代码!
      

  19.   

    WORD wVersionRequested;
    WSADATA wsaData;
    char name[255];
    PHOSTENT hostinfo;
    wVersionRequested = MAKEWORD( 2, 0 );

    if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
    {
    if( gethostname ( name, sizeof(name)) == 0)
    {

    }

    WSACleanup( );

    AfxMessageBox(name);//name里是本机名
    我的错误在没有调用WSAStartup