日期:2014-05-20  浏览次数:21093 次

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

------解决方案--------------------
替你顶
------解决方案--------------------
帮顶
------解决方案--------------------
强顶,怎么,难道没有高手吗?
------解决方案--------------------
除以8
512 KB 理论速度是64kB下载速度。

我家的宽带偶尔非到70多k。
------解决方案--------------------
我觉得那写方法都不好,将除要用来测试的所有socket关闭,然后申请一个socket连接当地ISP服务器(保持最大速率),跟踪这段值的的流量后再计算~
------解决方案--------------------
哦~~帮你顶顶吧~~应该能行滴.route print 用过了吗?
------解决方案--------------------
找到URL了,别留信箱了,你自己去看:
http://www.codeproject.com/csharp/networkmonitorl.asp
------解决方案--------------------
up
------解决方案--------------------
不难,可利用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;
}

------解决方案--------------------
学习~!
------解决方案--------------------
up
------解决方案--------------------
mark