如题

解决方案 »

  1.   

    什么带宽?
    你的MODEM连到电信?
    由于上网方式不同,要设计通用的比较难。
      

  2.   

    如果想得到本机的网络连接带宽(速度),98以上系统可使用IP助手函数
    GetAdaptersInfo()GetIfTable()可以从操作系统维护的MIB库中读出本机各个接口的当前信息,如接口数目、类型、速率、物理地址、接收/发送字节数、错语字节数等等等等。根据接口类型可以推断出接口的种类,如MIB_IF_TYPE_ETHERNET是指以太网口,MIB_IF_TYPE_TOKENRING是指令牌环网类型等等。而modem使用PPP协议接入网络,对应接口类型为MIB_IF_TYPE_PPP  (值为23)。在程序中你读出本机所有接口的信息后,可以根据接口类型推断出该接口是否是指modem/Ethernet接口,接口速率即为你所想知道的网络的连接速率。以下是我写的一个小例子,示范getiftable()的用法,列举本机当前所有接口的类型及速率及索引号。如有不周之处,请各位指出。
    // GetIfTable.cpp
    // A sample try to get the speed of a modem by using GetIfTable() func#include <windows.h>
    #include <iphlpapi.h>
    #include <stdio.h>#pragma comment ( lib, "iphlpapi.lib" )int main( void )
    {
    MIB_IFTABLE   *pIfTable = NULL;
    ULONG          dwSize   = 0; DWORD          dwRet; printf( "This program try to get the speed of a modem by using GetIfTable()\n" );

    dwRet = GetIfTable( pIfTable, &dwSize, TRUE );
    if ( dwRet == ERROR_INSUFFICIENT_BUFFER )
    {
    pIfTable = ( MIB_IFTABLE * ) new char[dwSize]; if ( pIfTable != NULL )
    {
    dwRet = GetIfTable( pIfTable, &dwSize, TRUE );
    if ( dwRet == NO_ERROR )
    {
    printf( "dwNumEntries = %u\n", pIfTable->dwNumEntries ); for ( int i=0; i<pIfTable->dwNumEntries; i++ )
    {
    printf( "table[%1d].dwIndex = %u\n", 
    i, 
    (pIfTable->table[i]).dwIndex );
    printf( "         dwType  = %u\n",
    (pIfTable->table[i]).dwType );
    printf( "         dwSpeed = %u\n",
    (pIfTable->table[i]).dwSpeed );
    }
    }
    else
    {
    printf( "Some error occured!\n" );
    }
    }
    else
    {
    printf( "Memory allocate failue\n" );
    }
    }
    else
    {
    printf( "Some error occured!\n" );
    }
    return 0;
    }
      

  3.   

    如何得到拨号网络传输速度http://my.li3.net/gym/jiqiao/VC/netware/68.txt