[已解决]探讨!关于判断电脑有没有接入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文件的干扰。
_WinAPI_IsInternetConnected() 有一个网站,既可以搜索广告,也可以用来ping网络是否通 fybhwsx 发表于 2022-6-20 22:10
_WinAPI_IsInternetConnected()
好的,明天上班赶紧测试。谢谢! PING多个IP综合看结果试试看,或者用tracert? 其实像这种为毛不用PPPOE拔号的方式来控制可联网的电脑??? 邪恶海盗 发表于 2022-6-20 23:13
其实像这种为毛不用PPPOE拔号的方式来控制可联网的电脑???
现在都是直接用手机或5G网卡直接联网了 fybhwsx 发表于 2022-6-20 22:10
_WinAPI_IsInternetConnected()
这个函数在我们内部局域网也显示True的。:face (1):
只能用ping函数了
页:
[1]