La mejor forma para para realizar un ping a un servidor externo usando Kotlin es haciendo una llamada al comando ping del sistema Linux, que todo Android lo incluye.
Función isConnectedToThisServer()
La función isConnectedToThisServer llama el comando ping del sistema y comprueba el código de retorno, si se ha podido contectar con el servidor externo y ha respondido con pong, la función devolverá true, en caso de error false
El parametro necesario es el host del servidor externo, puede ser con su IP o su nombre de dominio
fun isConnectedToThisServer(host: String): Boolean {
val runtime = Runtime.getRuntime()
try {
val ipProcess = runtime.exec("/system/bin/ping -c 1 $host")
val exitValue = ipProcess.waitFor()
ipProcess.destroy()
return exitValue == 0
} catch (e: UnknownHostException) {
e.printStackTrace()
} catch (e: IOException) {
e.printStackTrace()
} catch (e: InterruptedException) {
e.printStackTrace()
}
return false
}
Su uso
Solo es necesario pasar como parametro la dirección IP o nombre de dominio y devuelve un boleano
val host: String = "178.33.5.208"
if (isConnectedToThisServer(host)) {
println("PING SUSCEFUUUULL")
} else {
println("PING FAILED")
}