fayuOmg 发表于 2022-6-20 21:57:37

[已解决]探讨!关于判断电脑有没有接入Internet,有没有更有效的方法?

本帖最后由 fayuOmg 于 2022-6-21 10:46 编辑

我们单位有一张超大的办公局域网,无法接入internet的。

我想做一个小工具,后台实时监测这些电脑有没有被接入因特网。

上周在家测试使用的是以下两个函数:


#include <WinAPIDiag.au3>
_WinAPI_IsNetworkAlive ( )
_WinAPI_IsInternetConnected()

#include <WinINet.au3>
_WinINet_InternetGetConnectedState()

static/image/hrline/4.gif
在家测试是挺好用的,后来在单位电脑上就不好使了。
虽然我们单位是孤立的局域网,但是上面两个函数返回的结果居然都是True,
原因是Windows系统自己判断已经接入了互联网,网卡上没有感叹号的那种。
所以,上面两个函数应该是调用了Windows内部的判断结果而已。


static/image/hrline/2.gif
今晚试了下使用Ping函数,这个结果蛮准的,但是,也有一个不大不小的缺点,就是这个ping容易受本机host文件的干扰。
如果有人把我要Ping的网站都指向127.0.0.1,就会导致结果出错。

所以向各位大佬请教,还有没有更好用的办法?



static/image/hrline/1.gif
2022.06.21更新
_WinAPI_IsNetworkAlive ( )
_WinAPI_IsInternetConnected()
_WinINet_InternetGetConnectedState()

上面三个函数在我们内网都显示为已连通互联网,所以没法用。

最后的解决办法是使用Ping函数,ping公用的DNS地址,这样做的好处是避免hosts文件的干扰。

fybhwsx 发表于 2022-6-20 22:10:11

_WinAPI_IsInternetConnected()

zghwelcome 发表于 2022-6-20 22:14:01

有一个网站,既可以搜索广告,也可以用来ping网络是否通

fayuOmg 发表于 2022-6-20 22:33:17

fybhwsx 发表于 2022-6-20 22:10
_WinAPI_IsInternetConnected()

好的,明天上班赶紧测试。谢谢!

邪恶海盗 发表于 2022-6-20 23:12:50

PING多个IP综合看结果试试看,或者用tracert?

邪恶海盗 发表于 2022-6-20 23:13:28

其实像这种为毛不用PPPOE拔号的方式来控制可联网的电脑???

fayuOmg 发表于 2022-6-21 09:19:47

邪恶海盗 发表于 2022-6-20 23:13
其实像这种为毛不用PPPOE拔号的方式来控制可联网的电脑???

现在都是直接用手机或5G网卡直接联网了

fayuOmg 发表于 2022-6-21 10:38:30

fybhwsx 发表于 2022-6-20 22:10
_WinAPI_IsInternetConnected()

这个函数在我们内部局域网也显示True的。:face (1):

只能用ping函数了
页: [1]
查看完整版本: [已解决]探讨!关于判断电脑有没有接入Internet,有没有更有效的方法?