我正在制作一个由php脚本控制的服务器,我有客户端(androidphones),他们调用这些脚本来控制服务器。我保存了php的数据库的IP地址。PHP请求检查客户端是否可通过IP
现在我正在寻找一种方法来检查,如果这些IP的依旧可达..
这是我试过到目前为止:
cron作业 - >我与开发usbwebserver所以我不能使用从CMD的PHP
作出从PHP脚本的IP ping请求:如果可用它将返回相当“快”,但如果它失败,我得到最大excution错误。这种工作方式让我得到我想要的结果,但没有线程化的可能性,这个解决方案不会按照我的想法按时完成。这种方法有效吗?
东西我考虑: -
- 提出请求通过HTTP脱装置,并且做的结果我回来的东西,是这甚至可能(使从服务器到客户端的请求) ?
- 制作一个python脚本,从db获取ip并进行ping调用并将结果存储回db。
- 使时间戳当一个设备连接,并从其他设备检查时间戳,如果最大时间超过,则更新DB
有什么建议?
我敢肯定,99.9%的终端用户家庭路由器默认设置为不响应ICMP坪也路线需要适当的设备响应,您的客户端或Android将不会有一个服务与运行打开端口以响应ping。这是一个棘手的问题,可能会让你更好地使用客户端的心跳,并使用超时。如果客户端正在请求数据,那么它的在线。 – 2012-03-30 12:02:34
即使您成功ping通IP,这并不意味着您到达发出原始请求的设备。我猜想大多数移动设备每次重新连接到网络时都会得到一个新的IP地址,不是吗? – 2012-03-30 12:03:12
@LawrenceCherone我已经ping到android没有问题...我会尝试心跳的方法。thx回复。对于其他replier:如果他们失去了连接设备仍然需要通过PHP捕捉新的IP ..所以IP是最新的。顺便说一句我正在使用这在lan网络 – Tobrun 2012-03-30 12:04:24