在Windows上使用C/C++有没有相当健壮的方法来定时(每N分钟)检查VPN的连通性?在python中,我只是简单地pinged一个主机并读取回复-尽管这种方法有效,但我更喜欢使用一些不那么麻烦的东西。
发布于 2011-09-07 23:00:11
假设您正在谈论一个windows VPN连接(而不是像OpenVPN这样的连接),您可以使用RasEnumConnections枚举当前的远程访问(RAS)连接,并且可以使用RasGetConnectStatus获取连接的状态。
发布于 2011-09-07 23:06:28
虽然您当然可以编写自己的服务自动加载,并且可以通过services.msc进行管理,但我不建议您在这上面浪费时间。
对于这个简单的目的,您只需要一个任务调度器(例如schtasks.exe)和一个原始检查程序。
我在Perl中实现了一个类似的功能,它每分钟用一个URL列表检查互联网连接,并尝试从另一个URL列表中保存有关调制解调器状态的信息。它还会记录它所做的一切
http://frigocoder.dyndns.org/svn/script/cable/
发布于 2011-09-08 18:28:39
正如在另一个答案中提到的,您可以调用
DWORD RasGetLinkStatistics(
__in HRASCONN hRasConn,
__in DWORD dwSubEntry,
__inout RAS_STATS *lpStatistics);获取足够的信息
关于你的联系。在MSDN上阅读更多关于它的信息。
https://stackoverflow.com/questions/7335991
复制相似问题