如何判断网卡是否有活动连接?
想法是这样的:本机上,如果某一网卡,比如:无线网络连接有具体的IP,则说明此连接正在活动。如果没有IP地址,则说明此网卡没有网络活动。
这个如何判断呢?能举个例子吗?谢谢! 三种思路,,你说的是检查ip?
1、检查ip可以用@IPAddress1@IPAddress2 @IPAddress3等。。。
2、遍历网卡获取ip,可以精确获取各类网卡,参考A版以前发过的比较复杂,
3、收藏了一个代码如下:推荐2、3
Global Const $__WinINet_sDLL = "wininet.dll"
Global $__WinINet_hDLL = $__WinINet_sDLL
If _WinINet_InternetGetConnectedState() Then
MsgBox(0, True, "联网!!!")
Else
MsgBox(0, False, "断网!!!")
EndIf
Exit
Func _WinINet_InternetGetConnectedState()
; Set data/structures up
Local $tFlags = DllStructCreate("dword")
; Make DLL call
Local $avResult = DllCall($__WinINet_hDLL, _
"bool", "InternetGetConnectedState", _
"ptr", DllStructGetPtr($tFlags), _
"dword", 0 _
)
; Return response
If @error Then Return SetError(1, 0, False)
Return SetError(0, DllStructGetData($tFlags, 1), $avResult <> 0)
EndFunc ;==>_WinINet_InternetGetConnectedState 太复杂了,看不懂啊,有更简单的方法吗? 不需要确定此网卡的IP是什么,只能确定有IP地址,是处于活动状态就可以了。 学习看看。 回复 2# user11
谢谢分享!判断网络是否联网,好代码!{:face (355):} 收藏的代码学习了, 本帖最后由 Huiseyu 于 2016-2-29 21:53 编辑
太复杂了,看不懂啊,有更简单的方法吗? 不需要确定此网卡的IP是什么,只能确定有IP地址,是处于活动状态就 ...
xia_xia 发表于 2016-2-23 23:17 http://www.autoitx.com/images/common/back.gif
我才楼主是不是这个意思:只判断是否有网络连接,不判断是否可以访问"Inter网络"?$ipad = @IPAddress1
$arr_ip = StringSplit($ipad, '.')
If $arr_ip > 0 And $arr_ip > 0 And $arr_ip > 0 And $arr_ip > 0 Then
MsgBox(8096, 'IP : ' & $ipad, '有具体的IP,则说明此连接正在活动')
Else
MsgBox(8096, 'IP : ' & $ipad, '没有IP地址,则说明此网卡没有网络活动。')
EndIf 谢谢Huiseyu 回复 1# xia_xia
建议这样更准确:用netstat -e延时输出到两个文件
然后比较这两个文件中的如下的Received Sent处的Bytes 字节数
如果两次不一样就计数一次,然后比较多次,如果都不同就说明是活动的。
如下:CMD下netstat -e得到的数据。
C:\Documents and Settings\Administrator>netstat -e
Interface Statistics
Received Sent
Bytes 66738238 40091665
Unicast packets 166714 217883
Non-unicast packets 637 132
Discards 0 0
Errors 0 0
Unknown protocols 0
页:
[1]