Yo lo que haría es intentar "leer" de ellas; y si no puedes, pues es que no están operativas.
En Java por ejemplo sería algo como:
Código PHP:
import java.net.*;
import java.io.*;
public class URLReader {
public static void main(String[] args) throws Exception {
URL oracle = new URL("http://www.oracle.com/");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
Lo del ping no es buena idea, porque bien pueden denegar el ping y estar operativos.