Jak można pingować adres IP z aplikacji golang? Ostatecznym celem jest sprawdzenie, czy serwer jest online.Jak pingować adres IP w golang
Czy w bibliotece standardowej można zastosować metodę ping sieci?
Jak można pingować adres IP z aplikacji golang? Ostatecznym celem jest sprawdzenie, czy serwer jest online.Jak pingować adres IP w golang
Czy w bibliotece standardowej można zastosować metodę ping sieci?
Jak wspomina @desaipath, nie ma sposobu, aby to zrobić w standardowej bibliotece. Jednak nie trzeba pisać kod dla siebie - to już zostało zrobione:
Uwaga, wysyłając pakiety ICMP wymaga uprawnień administratora
Znalazłem to później, po zadaniu tego pytania, ale dziękuję za dodanie! –
nr
Go nie ma żadnego wbudowanego w drogę do ping serwer w bibliotece standardowej. Musisz napisać kod samodzielnie.
W tym celu można zajrzeć do icmp section of golang library. I użyj this list of control messages, aby poprawnie utworzyć wiadomość ICMP.
Należy jednak pamiętać, że niektórzy administratorzy serwera zamykają usługę ping na swoim serwerze, z powodu powodu bezpieczeństwa. Tak więc, jeśli Twoim celem jest ostateczne sprawdzenie, czy serwer jest online, czy nie, nie jest to metoda w 100% niezawodna.
Co byś polecił? –
@JustDevInc Czy serwery są pod kontrolą użytkownika (lub firmy)? Jeśli tak, to echo ICMP nie jest najlepszym rozwiązaniem, jak opisano w odpowiedzi na [tę] odpowiedź (http://security.stackexchange.com/questions/4440/security-risk-ofping). Lepszym sposobem jest posiadanie punktu końcowego http na serwerze, który odpowiada na twoje żądanie. – desaiparth
W porządku, dziękuję, przepraszam za spóźnioną odpowiedź. –
Musiałem to samo Rzecz w tym, jak ty i ja zrobiliśmy obejście (z exec.Command
) dla mojego Raspberry Pi, aby sprawdzić, czy serwery są online. Oto eksperymentalny kod
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")
}
check to https://gist.github.com/kenshinx/5796276 – Bacon
https://godoc.org/golang.org/x/net/icmp –
@ Dzięki Jonathon-Reinhart ! Zajrzę do ICMP. Chciałbym zaznaczyć komentarze jako odpowiedzi. –