No dejes de compartir nuestro espacio y códigos en tus redes sociales, danos de tu ayuda para aumentar nuestra comunidad.
Solución:
Como menciona @desaipath, no hay forma de hacer esto en la biblioteca estándar. Sin embargo, no es necesario que escriba el código usted mismo, ya se ha hecho:
https://github.com/tatsushid/go-fastping
Tenga en cuenta que el envío de paquetes ICMP requiere privilegios de root
Necesitaba lo mismo que tú y he hecho una solución (con exec.Command
) para que mi Raspberry Pi compruebe si los servidores están en línea. Aquí está el código experimental
out, _ := exec.Command("ping", "192.168.0.111", "-c 5", "-i 3", "-w 10").Output()
if strings.Contains(string(out), "Destination Host Unreachable")
fmt.Println("TANGO DOWN")
else
fmt.Println("IT'S ALIVEEE")
No.
Go no tiene una forma incorporada de hacer ping a un servidor en la biblioteca estándar. Necesita escribir el código usted mismo.
Para eso, puede consultar la sección icmp de la biblioteca golang. Y use esta lista de mensajes de control para construir el mensaje icmp correctamente.
Pero tenga en cuenta que algunos administradores de servidor cierran el servicio de ping en su servidor, por razones de seguridad. Por lo tanto, si su objetivo es verificar en última instancia si el servidor está en línea o no, este no es un método 100% confiable.
Reseñas y puntuaciones
Al final de todo puedes encontrar las interpretaciones de otros usuarios, tú además puedes dejar el tuyo si dominas el tema.