我用
DWORD GetTcpTable(
  PMIB_TCPTABLE pTcpTable,    // buffer for the connection table
  PDWORD pdwSize,             // size of the buffer
  BOOL bOrder                 // sort the table?
);
得到了端口的信息,
其中有些dwLocalAddr和dwRemoteAddr正常,如127.0.0.1
但还有很多项的dwLocalAddr和dwRemoteAddr却为0.0.0.0,这表示什么
Udp 也一样有这种情况?

解决方案 »

  1.   

    PCHAR
    GetIpHostName(
    DWORD Flags,
    BOOL local, 
    UINT ipaddr,
    PCHAR name, 
    int namelen 
    )
    {
    struct hostent *phostent;
    UINT nipaddr; //
    // Does the user want raw numbers?
    //
    nipaddr = htonl( ipaddr );
    if( Flags & FLAG_SHOW_NUMBERS ) { sprintf( name, "%d.%d.%d.%d", 
    (nipaddr >> 24) & 0xFF,
    (nipaddr >> 16) & 0xFF,
    (nipaddr >> 8) & 0xFF,
    (nipaddr) & 0xFF);
    return name;
    } //
    // Try to translate to a name
    //
    if( !ipaddr  ) { if( !local ) { sprintf( name, "%d.%d.%d.%d", 
    (nipaddr >> 24) & 0xFF,
    (nipaddr >> 16) & 0xFF,
    (nipaddr >> 8) & 0xFF,
    (nipaddr) & 0xFF); } else { gethostname(name, namelen);
    } } else if( ipaddr == 0x0100007f ) { if( local ) { gethostname(name, namelen);
    } else { strcpy( name, "localhost" );
    } } else if( phostent = gethostbyaddr( (char *) &ipaddr,
    sizeof( nipaddr ), PF_INET )) { strcpy( name, phostent->h_name ); } else { sprintf( name, "%d.%d.%d.%d",
    (nipaddr >> 24) & 0xFF,
    (nipaddr >> 16) & 0xFF,
    (nipaddr >> 8) & 0xFF,
    (nipaddr) & 0xFF);
    }
    return name;
    }GetIpHostName( flags, FALSE, tcpTable->table[i].dwRemoteAddr..
    0.0.0.0也是正常的地址吧!
      

  2.   

    Tcpview的代码:
    http://www.sysinternals.com/ntw2k/source/tcpview.shtml
    http://www.vbip.com/iphelper/get_tcp_table.asp