return (200 <= responseCode && responseCode <= 399);

Parce que si le serveur te répond 404 ou 503, pour toi le ping a échoué? T'as pourtant bien une réponse du serveur là :)