iOS SimplePing有时会给出错误的结果

时间:2014-07-22 19:56:43

标签: ios vpn ping

要登录并访问我们iOS应用的各种功能,用户需要通过iOS设备连接到我们的VPN网络。应用程序调用的Web服务也只能通过VPN访问。为了确定用户是通过VPN运行应用程序(在线模式)还是用户在VPN之外运行应用程序(离线),我们正在使用Apple的SimplePing类助手https://github.com/chrishulbert/SimplePingHelper。我们传递我们的Web服务的主机名来进行ping调用。如果成功,我们总结用户在VPN上。如果ping失败,我们会断定用户不在VPN上并给他一条消息,说他需要连接到VPN。

我们看到的问题是,即使用户在VPN上,有时我们也会遇到ping失败,这会导致用户收到他缺乏连接的消息。如果用户再次尝试某些操作,则呼叫成功。

我们不确定是什么原因导致ping间歇性失败并在几秒钟内尝试再次成功。有没有人遇到过这种问题?可能的原因和解决方案是什么?欢迎任何想法。

1 个答案:

答案 0 :(得分:0)

我们使用SimplePing,我注意到有时它甚至在实际ping之前就无法解析主机名(在-(void)hostResolutionDone中)。我还没弄清楚为什么,但我的解决方法是停止/重启ping服务。主机解析失败很少发生,所以它通常会在第二次解决时纠正自己。