高手看剑:如何取当前网卡速率如(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