xia_xia 发表于 2016-2-23 21:54:55

如何判断网卡是否有活动连接?

想法是这样的:

本机上,如果某一网卡,比如:无线网络连接有具体的IP,则说明此连接正在活动。如果没有IP地址,则说明此网卡没有网络活动。

这个如何判断呢?能举个例子吗?谢谢!

user11 发表于 2016-2-23 23:11:44

三种思路,,你说的是检查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

xia_xia 发表于 2016-2-23 23:17:20

太复杂了,看不懂啊,有更简单的方法吗? 不需要确定此网卡的IP是什么,只能确定有IP地址,是处于活动状态就可以了。

rascal14 发表于 2016-2-24 08:39:01

学习看看。

chzj589 发表于 2016-2-24 16:32:02

回复 2# user11
谢谢分享!判断网络是否联网,好代码!{:face (355):}

zghwelcome 发表于 2016-2-29 21:44:40

收藏的代码学习了,

Huiseyu 发表于 2016-2-29 21:45:05

本帖最后由 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

xia_xia 发表于 2016-3-3 20:25:10

谢谢Huiseyu

love008 发表于 2016-3-3 21:11:33

回复 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]
查看完整版本: 如何判断网卡是否有活动连接?