PHP发出请求检查客户端是否可通过ip访问

时间:2012-03-30 11:54:15

标签: php python mysql request ip

我正在制作一个由php脚本控制的服务器,我有客户端(androidphones)调用这些脚本来控制服务器。我正在将PHP收到的ip保存到数据库中。

现在我正在寻找一种方法来检查这些ip是否仍然可以访问..

这是我到目前为止所尝试的:

  • Cron职位 - >我正在使用usbwebserver进行开发,因此我无法使用cmd中的php

  • 从php脚本向ip发出ping请求:如果可用,它将返回“fast”,但如果失败,我将获得最大的执行错误。这种工作方式让我得到了我想要的结果,但没有线程化的可能性,这个解决方案不会按照我的意愿及时执行。这种方法有效吗?

  • 我正在考虑的事情: -

    • 通过http向设备发出请求,并对我得到的结果做一些事情,这是否可能(从服务器到客户端发出请求)?
    • 制作一个python脚本,从db获取ip并进行ping调用并将结果存储回db。
    • 在设备连接时制作时间戳并检查来自其他设备的时间戳,如果超过最大时间则更新数据库

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

我会对客户端进行ping操作,看看它是否仍处于活动状态。

尝试使用套接字ping客户端。看看这里:http://www.php.net/manual/en/function.socket-create.php#101012

答案 1 :(得分:0)

这不起作用,因为您始终必须让客户响应。我建议使用客户端(例如,在html中使用javascript)从客户端脚本到服务器每分钟建立连接(ping),并在cronjobs中让脚本每隔x分钟运行一次以更新没有的客户端在x内。

答案 2 :(得分:0)

这种检查绝对没有意义 你将始终拥有这些IP 仅仅因为Android客户端很少有真正的IP但通过某些路由器/代理使用Net。

网络是单向的。 要实现心跳功能,您必须让您的Android客户端ping服务器。