年末大求救SOS:(我分快没了)
如何取当前网卡速率如(100Mbps/10Mbps/...) ?见Window资源管理器中。或是知道如何取到网络使用率(Window资源管理器中的“网络应用”英文是:Network Utilization)也行。因为我现在想得到网络使用率,我的方法是用Bytes Total/sec * 8 / 1024 /1024 / 100Mbps,因为网卡速率不同有100Mbps、10Mbps、1000Mbps,用户也可以将100Mbps的改成10Mbps的双式或是半双工...,在Windows的Cmd中命令中有没有可以查看到这个信息的也行。
如何得到网卡的MacAddress==就不用说了,这些我都会。先谢了!

解决方案 »

  1.   

    除以8
    512 KB 理论速度是64kB下载速度。我家的宽带偶尔非到70多k。
      

  2.   

    我觉得那写方法都不好,将除要用来测试的所有socket关闭,然后申请一个socket连接当地ISP服务器(保持最大速率),跟踪这段值的的流量后再计算~
      

  3.   

    不管怎么说先谢谢各位了,楼上的题目看错了,我求的不是这些,我是要知道网卡工作的速率是100Mbps或是10Mbps... 用程序可以得到的方法,可以用鼠标移到WINDOWS的网络托盘图上标:它会显示:
    本地连接
    速度: 100.0Mbps
    状态: 已连接上
      

  4.   

    哦~~帮你顶顶吧~~应该能行滴.route print 用过了吗?
      

  5.   

    先谢一下,早用过了,没有发现100Mbps之类的,不是吗?呵呵~~。
      

  6.   

    用Win32_NetworkAdapter大概可以解决你的问题.
    留下Email,我给你点代码参考
      

  7.   

    找到URL了,别留信箱了,你自己去看:
    http://www.codeproject.com/csharp/networkmonitorl.asp
      

  8.   

    楼上好人,这个我很早就找到了,也是不行的(而且和我的题目不对的,我是要得到网卡速率如100Mbps或是直接能得到网络利用率也行),而且这个是VS2005的。我的是VS2003,通过Win32_NetworkAdapter我也试了很多了,我把它所有的属性列出来都是没有的。愈闷啊!
    下面的就是我列出来的属性代码的。
    // ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * From Win32_NetworkAdapter");
    // ManagementObjectCollection moc = mos.Get();
    // foreach(ManagementObject mo in moc) {
    // foreach(PropertyData pd in mo.Properties) {
    // if(pd.Value != null) {
    // Console.WriteLine(pd.Name + " ***** " + pd.Value.ToString());
    // } else {
    // Console.WriteLine(pd.Name + "########");
    // }
    // }
    // mo.Dispose();
    // }
      

  9.   

    新年好啊!我还要上完今天的班,现在在做一个如Windows的Perfmon.exe的程序。但又想添加一些自己的Counters的Info.所以...
      

  10.   

    不难,可利用SDK API:GetAdaptersInfo以及GetIfEntry实现。GetAdaptersInfo返回系统中的所有网卡信息。GetIfEntry则返回制定网口的速率、状态等信息。 ---------注意就是你要的速率
    可编写成DLL完成网口检测工作,并仅返回检测结果即可。VC代码(对不起本人只会VC,不过DLL也只能用VC,C#是写不了的.): 
         DWORD dwOutBufLen=0; 
         PIP_ADAPTER_INFO pAdapterInfo=NULL,pAdapter=NULL; 
         MIB_IFROW zSNMP; 
         char sTemp[20]; 
         int iReturn; 
         
         iReturn=GetAdaptersInfo(pAdapterInfo,&dwOutBufLen); 
         if(iReturn!=ERROR_BUFFER_OVERFLOW) 
         { 
         return 0; 
         } 
        
         pAdapterInfo =(PIP_ADAPTER_INFO) HeapAlloc(GetProcessHeap(), 0, dwOutBufLen); 
         iReturn=GetAdaptersInfo(pAdapterInfo,&dwOutBufLen); 
         if(iReturn!=ERROR_SUCCESS)      
         {      
         HeapFree(GetProcessHeap(), 0, pAdapterInfo);     
         return 0;      
         } 
         pAdapter=pAdapterInfo; 
         
         
         //find if there is ppp adapter 
         while(pAdapter!=NULL )      
         {      
         zSNMP.dwIndex = pAdapter->Index;     
         iReturn=GetIfEntry(&zSNMP);     
         if(iReturn!=NO_ERROR)      
         return 0;      
         m_iIfSpeed=zSNMP.dwSpeed/(1000*1000);   //----------你要的速率  
         pAdapter=pAdapter->Next;      
         } 
      

  11.   

    TianChong(*︿_︿* ○Ооo○泡泡oо㊣VC高手群:2997669)  还是要感谢你,VC我不懂。问题虽然还是没有解决!
      

  12.   

    应该就是Current Bandwidth这个Counter了,我把我的网卡改为10Mpbs就是10,000,000如果是100Mpbs就是100,000,000,就用它吧,不找了。 (改这个参数还自动Down了一次机)