找回密码
 加入
搜索
查看: 3743|回复: 8

[AU3基础] 如何判断网卡是否有活动连接?

  [复制链接]
发表于 2016-2-23 21:54:55 | 显示全部楼层 |阅读模式
想法是这样的:

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

这个如何判断呢?能举个例子吗?谢谢!
发表于 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] <> 0)
EndFunc   ;==>_WinINet_InternetGetConnectedState
 楼主| 发表于 2016-2-23 23:17:20 | 显示全部楼层
太复杂了,看不懂啊,有更简单的方法吗? 不需要确定此网卡的IP是什么,只能确定有IP地址,是处于活动状态就可以了。
发表于 2016-2-24 08:39:01 | 显示全部楼层
学习看看。
发表于 2016-2-24 16:32:02 | 显示全部楼层
回复 2# user11
谢谢分享!判断网络是否联网,好代码!
发表于 2016-2-29 21:44:40 | 显示全部楼层
收藏的代码学习了,
发表于 2016-2-29 21:45:05 | 显示全部楼层
本帖最后由 Huiseyu 于 2016-2-29 21:53 编辑
太复杂了,看不懂啊,有更简单的方法吗? 不需要确定此网卡的IP是什么,只能确定有IP地址,是处于活动状态就 ...
xia_xia 发表于 2016-2-23 23:17



我才楼主是不是这个意思:只判断是否有网络连接,不判断是否可以访问"Inter网络"?
$ipad = @IPAddress1
$arr_ip = StringSplit($ipad, '.')

If $arr_ip[0] > 0 And $arr_ip[1] > 0 And $arr_ip[2] > 0 And $arr_ip[3] > 0 Then
        MsgBox(8096, 'IP : ' & $ipad, '有具体的IP,则说明此连接正在活动')
Else
        MsgBox(8096, 'IP : ' & $ipad, '没有IP地址,则说明此网卡没有网络活动。')
EndIf
 楼主| 发表于 2016-3-3 20:25:10 | 显示全部楼层
谢谢Huiseyu
发表于 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
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 11:51 , Processed in 0.079292 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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