找回密码
 加入
搜索
查看: 5423|回复: 12

如何获取本地网络的连接速度!如100M 1000M

[复制链接]
发表于 2009-2-10 22:44:27 | 显示全部楼层 |阅读模式
如何获取本地网络的连接速度!如100M 1000M
如何获取本地网络的连接速度!如100M 1000M ,哪位大虾帮帮忙啊``
发表于 2009-2-11 02:32:52 | 显示全部楼层
$tagRasConn = "dword dwSize;hWnd hRasConn;char szEntryName[257];" & _
                "char szDeviceType[17];char szDeviceName[129];" & _
                "char szPhoneBook[261];dword dwSubEntry;int GuidEntry;" & _
                "dword dwFlags;int Luid;int GuidCorrelationId"

$tRasConn = DllStructCreate($tagRasConn)
DllStructSetData($tRasConn, "dwSize", DllStructGetSize($tRasConn))
$ptRasConn = DllStructGetPtr($tRasConn)

$lpCb = DllStructCreate("byte")
DllStructSetData($lpCb, 1, DllStructGetSize($tRasConn))

$pRes = DllStructCreate("ulong")

$res = DllCall("RasAPI32.Dll", "dword", "RasEnumConnections", _
                "ptr", $ptRasConn, _
                "dword*", DllStructGetPtr($lpCb), _
                "dword*", DllStructGetPtr($pRes))

$hRasConn = DllStructGetData($tRasConn, "hRasConn")

$tagRasStats = "dword dwSize;dword dwBytesXmited;dword dwBytesRcved;" & _
        "dword dwFramesXmited;dword dwFramesRcved;dword dwCrcErr;" & _
        "dword dwTimeoutErr;dword dwAlignmentErr;dword dwHardwareOverRunErr;" & _
        "dword dwFramingErr;dword dwBufferOverRunErr;dword dwCompressionRatioIn;" & _
        "dword dwCompressionRatioOut;dword dwBps;dword dwConnectDuration"

$tRasStats = DllStructCreate($tagRasStats)
DllStructSetData($tRasStats, "dwSize", DllStructGetSize($tRasStats))
$ptRasStats = DllStructGetPtr($tRasStats)

$GetStatistics = DllCall("RasAPI32.Dll", "dword", "RasGetConnectionStatistics", _
                "hWnd", $hRasConn, "ptr", $ptRasStats)
msgBox(0, DllStructGetData($tRasConn, "szEntryName"), "Speed:" & DllStructGetData($tRasStats, "dwBps") / 1000000)
发表于 2009-2-11 09:55:59 | 显示全部楼层
Speed 0
 楼主| 发表于 2009-2-16 15:54:44 | 显示全部楼层
试了不行,在线等有高人知道吗,谢谢
发表于 2009-6-7 14:13:21 | 显示全部楼层
2# pusofalse


该代码,可以获取是ADSL拨号上网的速率.
但局域网共享上网的就无法获取,能修正一下吗?
发表于 2009-6-7 18:56:51 | 显示全部楼层
Re itljl:
看下ceoguang兄的这个帖子能否满足你的需要。
http://www.autoitx.com/forum.php ... &extra=page%3D2
发表于 2009-6-7 19:10:58 | 显示全部楼层
留个名,学习下2楼代码
发表于 2009-6-7 22:00:11 | 显示全部楼层
6# pusofalse


你好,这个不行的,这个是获取的网卡的速率,比如KM网卡就是1000Mbps,如果因为其它原因变为100了,这个代码检测出来,还是100的。
发表于 2009-6-7 22:01:14 | 显示全部楼层
也就是说,他获取的是网卡可以达到的速率,而不是当前实际的速率。(比如网线没接好,或者在驱动设置项中将网卡设置为100Mbps的情况,这个代码检测出来,还是1000mbps)
发表于 2009-7-13 08:33:20 | 显示全部楼层
SPEED 0?
发表于 2009-7-19 14:44:29 | 显示全部楼层
我也想要1个这样的程序
发表于 2009-12-11 04:41:04 | 显示全部楼层
我也需要啊,呵呵,这样的工具想了多久了,就是没有找到哟
发表于 2009-12-11 16:40:23 | 显示全部楼层
Func _NetworkAdapterInfo()
;======================================================
;
; 函数名称:        _NetworkAdapterInfo()
; 详细信息:        获取系统所有网卡信息
; 返回值说明:
; 以二维数组方式返回.例如 $info=_NetworkAdapterInfo()
; $info[0][0] 网卡数量
; $info[1][0] 第一块网卡的标志1
; $info[1][1] 第一块网卡的状态
; 状态说明:7为网卡未插网线,2为网卡连接正常
; $info[1][2] 第一块网卡的网卡名称
; $info[1][3] 第一块网卡的连接名称
; $info[1][4] 第一块网卡的MAC地址
; $info[1][5] 第一块网卡的IP地址
; $info[1][6] 第一块网卡的默认网关
; $info[1][7] 第一块网卡的子网掩码
; $info[1][8] 第一块网卡的主DNS
; $info[1][9] 第一块网卡的次DNS
; 第二块网卡:
; $info[2][0] 第二块网卡的标志1
; $info[2][9] 第二块网卡的次DNS

; 其他网卡信息依次类推。。。
; 注意,此UDF不会获取已经禁用的网卡。
; 作者:      Sanhen (gxbeiliu@163.com)
; 网站: www.lunhui.net.cn  www.autoitx.com
;======================================================
        Local $colItem
        Local $objItem
        Local $colItems
        Local $objItems
        Local $objWMIService
        Local $Adapters[1][10]
        $Adapters[0][0] = 0
        $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
        ;$colItem  = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE physicaladapter =true", "WQL", 0x30)
                 $colItem  = $objWMIService.ExecQuery("Select * FROM Win32_NetworkAdapter Where NetConnectionStatus >0", "WQL", 0x30)
        If IsObj($colItem) Then
                For $objItem In $colItem
                        If $objItem.MACAddress = "00:00:00:00:00:00" Then ContinueLoop
                        $Adapters[0][0] += 1
                        ReDim $Adapters[UBound($Adapters) + 1][10]
                        $Adapters[$Adapters[0][0]][0] += $Adapters[0][0]
                        $Adapters[$Adapters[0][0]][1] = $objItem.NetConnectionStatus
                        $Adapters[$Adapters[0][0]][2] = $objItem.Description
                        $Adapters[$Adapters[0][0]][3] = $objItem.NetConnectionID
                        $Adapters[$Adapters[0][0]][4] = $objItem.MACAddress
                        $colItems  = $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress = "'&$Adapters[$Adapters[0][0]][4]&'" And IPEnabled = True ' , "WQL", 0x30)
                        If IsObj($colItems) Then
                                For $objItems In $colItems
                                        ;if $objItem1.IPAddress(0) = "0.0.0.0" Then ContinueLoop
                                        $Adapters[$Adapters[0][0]][5] = $objItems.IPAddress(0)
                                        $Adapters[$Adapters[0][0]][6] = $objItems.DefaultIPGateway(0)
                                        $Adapters[$Adapters[0][0]][7] = $objItems.IPSubnet(0)
                                        $Adapters[$Adapters[0][0]][8] = $objItems.DNSServerSearchOrder(0)
                                                                                $Adapters[$Adapters[0][0]][9]=$objItem.speed/1000000
                                       ; $Adapters[$Adapters[0][0]][9] = $objItems.DNSServerSearchOrder(1)
                                Next
                        EndIf
                Next
        EndIf

Return $Adapters

EndFunc


试试这个
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-22 15:34 , Processed in 0.086404 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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