httpserver.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "net/http"
  6. "strings"
  7. "time"
  8. )
  9. func main() {
  10. http.HandleFunc("/", func1) // Эта строка обеспечивает поддержку адреса <ip>:<port>/
  11. http.HandleFunc("/ok", func2) // Эта строка обеспечивает поддержку адреса <ip>:<port>/ok
  12. http.HandleFunc("/info", func3) // Эта строка обеспечивает поддержку адреса <ip>:<port>/info
  13. http.HandleFunc("/status", func4) // Эта строка обеспечивает поддержку адреса <ip>:<port>/info
  14. err := http.ListenAndServe(":80", nil) // устанавливаем порт веб-сервера: 80
  15. if err != nil {
  16. log.Fatal(err)
  17. }
  18. }
  19. func func1(w http.ResponseWriter, r *http.Request) { //объявляем функцию, которая будет вызвана при переходе на страницу.
  20. fmt.Fprint(w, "Перейдите на страницы /ok, /info или /status") //Вывод текста на странице
  21. }
  22. func func2(w http.ResponseWriter, r *http.Request) {
  23. w.WriteHeader(http.StatusOK) //устанавливаем статус ответа сервера - ОК.
  24. fmt.Fprint(w, "HTTP-status 200(OK).") //Вывод текста на странице
  25. }
  26. func func3(w http.ResponseWriter, r *http.Request) {
  27. fmt.Fprint(w, "Одинокова Анастасия Николаевна, 782 гр.") //Вывод текста на странице
  28. }
  29. func func4(w http.ResponseWriter, r *http.Request) {
  30. var ip = strings.Split(string(r.RemoteAddr), ".")
  31. fmt.Fprint(w, "Your IP address: ", ip[0], ".x.x.", ip[3][:strings.IndexByte(ip[3], ':')], "\n") //Вывод текста на странице
  32. fmt.Fprint(w, "Одинокова Анастасия Николаевна, 782 гр.\n")
  33. fmt.Fprint(w, time.Now().Format("2006-01-02 3:4:5 pm"))
  34. }