package main import ( "encoding/json" "fmt" "io/ioutil" "net/http" ) // Struktur für die JSON-Daten type NTPResponse struct { History []struct { Timestamp int `json:"ts"` Step int `json:"step"` Score float64 `json:"score"` MonitorID int `json:"monitor_id"` } `json:"history"` Monitors []struct { ID int `json:"id"` Name string `json:"name"` Type string `json:"type"` Ts string `json:"ts"` Score float64 `json:"score"` Status string `json:"status"` } `json:"monitors"` Server struct { IP string `json:"ip"` } `json:"server"` } func main() { // URL für die API-Abfrage url := "https://www.ntppool.org/scores/93.241.86.156/json?limit=1&monitor=24" // HTTP-GET-Anfrage senden resp, err := http.Get(url) if err != nil { fmt.Println("Fehler beim Abrufen der URL:", err) return } defer resp.Body.Close() // Antwort lesen body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("Fehler beim Lesen der Antwort:", err) return } // JSON-Daten in Struct einlesen var data NTPResponse err = json.Unmarshal(body, &data) if err != nil { fmt.Println("Fehler beim Parsen des JSON:", err) return } // Ausgabe der eingelesenen Daten fmt.Println("NTP Server IP:", data.Server.IP) if len(data.History) > 0 { fmt.Println("Letzte Messung:") fmt.Printf(" Zeitstempel: %d\n", data.History[0].Timestamp) fmt.Printf(" Score: %.2f\n", data.History[0].Score) fmt.Printf(" Monitor ID: %d\n", data.History[0].MonitorID) } if len(data.Monitors) > 0 { fmt.Println("Monitor Info:") fmt.Printf(" Name: %s\n", data.Monitors[0].Name) fmt.Printf(" Score: %.2f\n", data.Monitors[0].Score) fmt.Printf(" Status: %s\n", data.Monitors[0].Status) } }