Просмотр исходного кода

Добавлен обработчик для страницы Status

Mishura2005 4 месяцев назад
Родитель
Сommit
ea9f6cf218
1 измененных файлов с 42 добавлено и 0 удалено
  1. 42 0
      OAKC-Dzhurich-Lab2.go

+ 42 - 0
OAKC-Dzhurich-Lab2.go

@@ -0,0 +1,42 @@
+package main
+
+import (
+	"fmt"
+	"net/http"
+	"strings"
+	"time"
+)
+
+func okHandler(w http.ResponseWriter, r *http.Request) {
+	w.WriteHeader(http.StatusOK)
+	fmt.Fprintln(w, "OK")
+}
+
+func infoHandler(w http.ResponseWriter, r *http.Request) {
+	studentInfo := "ФИО: Джурич Михаил Горанович, Номер группы: 712"
+	fmt.Fprintln(w, studentInfo)
+}
+
+func statusHandler(w http.ResponseWriter, r *http.Request) {
+	ip := r.RemoteAddr
+	var maskedIP string
+	fmt.Sscanf(ip, "%[^:]:%*s", &maskedIP)
+	ipParts := strings.Split(maskedIP, ".")
+	if len(ipParts) == 4 {
+		maskedIP = fmt.Sprintf("%s.***.***.%s", ipParts[0], ipParts[3])
+	}
+	currentTime := time.Now().Format("2006-01-02 3:4:5 pm")
+	response := fmt.Sprintf("IP-адрес: %s\nФИО: Джурич Михаил Горанович\nТекущее время: %s", maskedIP, currentTime)
+	fmt.Fprintln(w, response)
+}
+
+func main() {
+	http.HandleFunc("/ok", okHandler)
+	http.HandleFunc("/info", infoHandler)
+	http.HandleFunc("/status", statusHandler)
+
+	fmt.Println("Сервер запущен на порту 8080...")
+	if err := http.ListenAndServe(":8080", nil); err != nil {
+		fmt.Println("Ошибка запуска сервера:", err)
+	}
+}