I'm making a server which is controlled by php scripts, i have clients (androidphones) who calls these script to control the server. I'm saving the ip's the php receives to the DB. 
now i'm looking for a way to check if these ip's are still reachable..
this is what i tried so far:

Cron job -> i'm developing with usbwebserver so i cant use php from cmd 
make a ping request to the ip from the php script: if available it will return rather "fast" but if it fails i get the maximum excution error. this way of working get me the results i want but without the possibilty of threading this, this solution isnt going to perform in time as i wanted. is there a way this approach could work?
something i'm considering:      -

make a request to de device through http, and do something with the result i get back, is this even possible (making a request from server to client)?   
making a python script that gets the ip from db and makes the ping calls and stores the results back into the db. 
making timestamps when a device connects and check timestamps from other devices, if max time was exceeded then update DB


any suggestions?
There is absolutely no point in such checking.
You will always have these IPs UP.
Just because an android client seldom have a real IP but using Net via some router/proxy.
Web is one-way road.
To implement a heart-beat feature you have to make your android clients to ping server.
PHP make a request check if client is available via ip