untitled.go 806 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "net"
  6. "net/http"
  7. "regexp"
  8. "time"
  9. )
  10. func GetOutboundIP() net.IP {
  11. conn, err := net.Dial("udp", "8.0.0.8:80")
  12. if err != nil {
  13. log.Fatal(err)
  14. }
  15. defer conn.Close()
  16. localAddr := conn.LocalAddr().(*net.UDPAddr)
  17. return localAddr.IP
  18. }
  19. func Status(w http.ResponseWriter, r *http.Request) {
  20. ip := GetOutboundIP().String()
  21. dt := time.Now()
  22. regex := regexp.MustCompile("\\W[0-9]*\\W[0-9]*")
  23. out := regex.ReplaceAllString(ip, ".x.x")
  24. fmt.Fprintln(w, out)
  25. fmt.Fprintf(w, "Морозов Дмитрий группа 784\n")
  26. fmt.Fprintln(w, dt.Format("2006-01-02 3:4:5 pm"))
  27. }
  28. func main() {
  29. http.HandleFunc("/Status", Status)
  30. http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
  31. fmt.Fprintf(w, "http ok")
  32. })
  33. http.ListenAndServe(":8080", nil)
  34. }