我正在製作一個由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