// Web-Check // // Beispiele für Aufrufe: // go build web_check.go // ./web_check -HOST=www.heise.de -PFAD=/index.html -STRING='Newsticker' // ./web_check -HOST www.heise.de -PFAD / -STRING 'Newsticker' // package main import ( "fmt" "io/ioutil" "log" "net/http" "crypto/tls" "strings" "os" "flag" ) func GetWebsite(HOST , PFAD string) string { NoCertVerify := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } NoCertVerifyHttp := &http.Client{Transport: NoCertVerify} JoinStrings := []string{"https://", HOST, PFAD} Response, Error := NoCertVerifyHttp.Get(strings.Join(JoinStrings, "")) if Error != nil { log.Fatal(Error) } Output, Error := ioutil.ReadAll(Response.Body) Response.Body.Close() if Error != nil { log.Fatal(Error) } return string(Output) } func StringContains(WebsiteString, StringToCompare string) bool { if strings.Contains(WebsiteString, StringToCompare) { return true } else { return false } } func main() { HOSTPtr := flag.String("HOST", "NoHOST", "HOST to check") PFADPtr := flag.String("PFAD", "NoPFAD", "PFAD to check") STRINGPtr := flag.String("STRING", "NosTRING", "STRING to check") flag.Parse() if *HOSTPtr != "NoHOST" && *PFADPtr != "NoPFAD" && *STRINGPtr != "NoSTRING" { } else { fmt.Println("Es wurden nicht alle Schalter benutzt!") os.Exit(2) } WebsiteContent := GetWebsite(*HOSTPtr, *PFADPtr) Status := StringContains(WebsiteContent, *STRINGPtr) if Status { //fmt.Println("Läuft!") os.Exit(0) } else { //fmt.Println("Läuft nicht!") os.Exit(1) } }