|
@@ -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)
|
|
|
+ }
|
|
|
+}
|