找回密码
 加入
搜索
查看: 6718|回复: 15

[网络通信] [已解决]如何获取网卡占用的网速(网卡产生的所有流量)

 火.. [复制链接]
发表于 2013-3-7 14:04:21 | 显示全部楼层 |阅读模式
本帖最后由 lin6051 于 2013-3-9 11:02 编辑

我描述得不清楚,

比方说我同时开了多个下载程序产生的总速度, 本地速度+网络速度
360,金山卫士的 流量监控那里有这功能

论坛找到了:  搜索关键字:流量

结果见楼下...
发表于 2013-3-7 14:37:54 | 显示全部楼层
本帖最后由 lpxx 于 2013-3-7 14:39 编辑

自己去折腾吧。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2013-3-7 16:40:08 | 显示全部楼层
本帖最后由 cvwyg 于 2013-3-7 17:43 编辑

感谢分享~!!!看不懂啊~!能不能给出核心代码~?
发表于 2013-3-7 22:14:44 | 显示全部楼层
关注过·········
 楼主| 发表于 2013-3-8 11:27:20 | 显示全部楼层
看得头大啊 而且还不能运行
 楼主| 发表于 2013-3-9 11:05:02 | 显示全部楼层
论坛找到可行简短代码:
#include <String.au3>
#include <GUIConstantsEx.au3>
$Form1 = GUICreate("Form1", 192, 67, 445, 376)
$Label1 = GUICtrlCreateLabel("上传速度:", 24, 8, 55, 17)
$Label2 = GUICtrlCreateLabel("0", 88, 8, 100, 17)
$Label3 = GUICtrlCreateLabel("0", 88, 32, 100, 17)
$Label4 = GUICtrlCreateLabel("下载速度:", 24, 32, 55, 17)
GUISetState(@SW_SHOW)
WinSetOnTop ($Form1,"",1) 

$_IfTable=_GetIfTable()
Global $_Down=$_IfTable[0]
Global $_UpDate=$_IfTable[1]
AdlibRegister ("_Strat_Time",1000)
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd
Func _Strat_Time()
        $_IfTable=_GetIfTable()
        GUICtrlSetData ($Label2, Round(($_IfTable[1]-$_UpDate)/1,2)& " Kb")
        GUICtrlSetData ($Label3, Round(($_IfTable[0]-$_Down)/1,2) & " Kb")
        Global $_Down=$_IfTable[0]
        Global $_UpDate=$_IfTable[1]
EndFunc

Func _GetIfTable()
        $_Return=DllCall("Iphlpapi.dll","long","GetIfTable","ptr",0,"ulong*",0,"int",0)
        $_aBuffer=DllStructCreate("byte[" & $_Return[2] & "]")
        $_Return=DllCall("Iphlpapi.dll","long","GetIfTable","ptr",DllStructGetPtr($_aBuffer),"ulong*",DllStructGetSize($_aBuffer),"int",0)
        $_Number=DllStructCreate("dword",DllStructGetPtr($_aBuffer))
        $_Number=DllStructGetData($_Number,1)
        $_MIB_IFROW="dword" & _StringRepeat(";wchar[256];dword[5];byte[8];dword[16];byte[256]",$_Number)
        $_MIB_IFTABLE=DllStructCreate($_MIB_IFROW,DllStructGetPtr($_aBuffer))
        Dim $_Table[2]
        For $i=2 To $_Number * 5 Step 5                
                $_Table[0]+=DllStructGetData($_MIB_IFTABLE,$i+3,4)
                $_Table[1]+=DllStructGetData($_MIB_IFTABLE,$i+3,10)
        Next        
        Return $_Table
EndFunc
发表于 2013-3-12 07:56:05 | 显示全部楼层
感谢分享~!!!看不懂啊~!能不能详细指导指导~?
发表于 2013-3-12 07:56:31 | 显示全部楼层
感谢分享~!!!看不懂啊~!能不能详细指导指导~?
发表于 2013-3-14 08:39:43 | 显示全部楼层
谢谢分享。。。应该有用
发表于 2013-3-14 10:38:18 | 显示全部楼层
NetHelper运行不了,怎么回事?
发表于 2013-3-14 12:23:05 | 显示全部楼层
回复 7# lin6051


    感谢分享~!!
 楼主| 发表于 2013-4-2 10:46:31 | 显示全部楼层
6楼代码 发现测速起来不太准 再找找
发表于 2013-5-28 15:52:51 | 显示全部楼层
2楼的代码能不能再调调,可能由于版本问题运行出错……
发表于 2014-5-4 10:24:08 | 显示全部楼层
最近也在折腾这问题,先试试
发表于 2016-11-24 19:29:58 | 显示全部楼层
正在学习中为这个头疼呢 感谢前辈 虽然是多年前还是顶一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-25 04:40 , Processed in 0.083002 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表