如何获取本地网络的连接速度!如100M 1000M
如何获取本地网络的连接速度!如100M 1000M如何获取本地网络的连接速度!如100M 1000M ,哪位大虾帮帮忙啊`` $tagRasConn = "dword dwSize;hWnd hRasConn;char szEntryName;" & _
"char szDeviceType;char szDeviceName;" & _
"char szPhoneBook;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) Speed 0:face (1): 试了不行,在线等有高人知道吗,谢谢 2# pusofalse
该代码,可以获取是ADSL拨号上网的速率.
但局域网共享上网的就无法获取,能修正一下吗? Re itljl:
看下ceoguang兄的这个帖子能否满足你的需要。
http://www.autoitx.com/forum.php?mod=viewthread&tid=6236&extra=page%3D2 留个名,学习下2楼代码 6# pusofalse
你好,这个不行的,这个是获取的网卡的速率,比如KM网卡就是1000Mbps,如果因为其它原因变为100了,这个代码检测出来,还是100的。 也就是说,他获取的是网卡可以达到的速率,而不是当前实际的速率。(比如网线没接好,或者在驱动设置项中将网卡设置为100Mbps的情况,这个代码检测出来,还是1000mbps) :face (30):SPEED 0? 我也想要1个这样的程序 我也需要啊,呵呵,这样的工具想了多久了,就是没有找到哟 Func _NetworkAdapterInfo()
;======================================================
;
; 函数名称: _NetworkAdapterInfo()
; 详细信息: 获取系统所有网卡信息
; 返回值说明:
; 以二维数组方式返回.例如 $info=_NetworkAdapterInfo()
; $info 网卡数量
; $info 第一块网卡的标志1
; $info 第一块网卡的状态
; 状态说明:7为网卡未插网线,2为网卡连接正常
; $info 第一块网卡的网卡名称
; $info 第一块网卡的连接名称
; $info 第一块网卡的MAC地址
; $info 第一块网卡的IP地址
; $info 第一块网卡的默认网关
; $info 第一块网卡的子网掩码
; $info 第一块网卡的主DNS
; $info 第一块网卡的次DNS
; 第二块网卡:
; $info 第二块网卡的标志1
; $info 第二块网卡的次DNS
; 其他网卡信息依次类推。。。
; 注意,此UDF不会获取已经禁用的网卡。
; 作者: Sanhen (gxbeiliu@163.com)
; 网站: www.lunhui.net.cnwww.autoitx.com
;======================================================
Local $colItem
Local $objItem
Local $colItems
Local $objItems
Local $objWMIService
Local $Adapters
$Adapters = 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 += 1
ReDim $Adapters
$Adapters[$Adapters] += $Adapters
$Adapters[$Adapters] = $objItem.NetConnectionStatus
$Adapters[$Adapters] = $objItem.Description
$Adapters[$Adapters] = $objItem.NetConnectionID
$Adapters[$Adapters] = $objItem.MACAddress
$colItems= $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress = "'&$Adapters[$Adapters]&'" 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] = $objItems.IPAddress(0)
$Adapters[$Adapters] = $objItems.DefaultIPGateway(0)
$Adapters[$Adapters] = $objItems.IPSubnet(0)
$Adapters[$Adapters] = $objItems.DNSServerSearchOrder(0)
$Adapters[$Adapters]=$objItem.speed/1000000
; $Adapters[$Adapters] = $objItems.DNSServerSearchOrder(1)
Next
EndIf
Next
EndIf
Return $Adapters
EndFunc
试试这个
页:
[1]