高手看剑:如何取当前网卡速率如(100Mbps/10Mbps/...)?

JavaK 2007-02-15 10:14:27
年末大求救SOS:(我分快没了)
如何取当前网卡速率如(100Mbps/10Mbps/...) ?见Window资源管理器中。或是知道如何取到网络使用率(Window资源管理器中的“网络应用”英文是:Network Utilization)也行。因为我现在想得到网络使用率,我的方法是用Bytes Total/sec * 8 / 1024 /1024 / 100Mbps,因为网卡速率不同有100Mbps、10Mbps、1000Mbps,用户也可以将100Mbps的改成10Mbps的双式或是半双工...,在Windows的Cmd中命令中有没有可以查看到这个信息的也行。
如何得到网卡的MacAddress==就不用说了,这些我都会。先谢了!
...全文
1302 38 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
JavaK 2007-02-23
  • 打赏
  • 举报
回复
应该就是Current Bandwidth这个Counter了,我把我的网卡改为10Mpbs就是10,000,000如果是100Mpbs就是100,000,000,就用它吧,不找了。 (改这个参数还自动Down了一次机)
JavaK 2007-02-20
  • 打赏
  • 举报
回复
TianChong(*︿_︿* ○Ооo○泡泡oо㊣VC高手群:2997669) 还是要感谢你,VC我不懂。问题虽然还是没有解决!
fatcatman 2007-02-20
  • 打赏
  • 举报
回复
mark
「已注销」 2007-02-20
  • 打赏
  • 举报
回复
up
yitian130 2007-02-20
  • 打赏
  • 举报
回复
学习~!
TianChong 2007-02-19
  • 打赏
  • 举报
回复
不难,可利用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;
}
JavaK 2007-02-16
  • 打赏
  • 举报
回复
新年好啊!我还要上完今天的班,现在在做一个如Windows的Perfmon.exe的程序。但又想添加一些自己的Counters的Info.所以...
JavaK 2007-02-16
  • 打赏
  • 举报
回复
我再顶,我还顶!
JavaK 2007-02-16
  • 打赏
  • 举报
回复
楼上好人,这个我很早就找到了,也是不行的(而且和我的题目不对的,我是要得到网卡速率如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();
// }
JavaK 2007-02-16
  • 打赏
  • 举报
回复
我等的高手还没来!
JavaK 2007-02-16
  • 打赏
  • 举报
回复
最后一天,倒计时4个小时。
「已注销」 2007-02-16
  • 打赏
  • 举报
回复
up
JavaK 2007-02-15
  • 打赏
  • 举报
回复
强顶,还没有高手到啊!
JavaK 2007-02-15
  • 打赏
  • 举报
回复
强顶,还没有高手到啊!
JavaK 2007-02-15
  • 打赏
  • 举报
回复
强顶,还没有高手到啊!
xiaoyue520 2007-02-15
  • 打赏
  • 举报
回复
帮顶
JavaK 2007-02-15
  • 打赏
  • 举报
回复
又顶
JavaK 2007-02-15
  • 打赏
  • 举报
回复
再顶
JavaK 2007-02-15
  • 打赏
  • 举报
回复
谢谢!
zyip 2007-02-15
  • 打赏
  • 举报
回复
替你顶
加载更多回复(18)

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧