|
@@ -0,0 +1,37 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "io"
|
|
|
+ "net/http"
|
|
|
+ "regexp"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+func main() {
|
|
|
+ http.HandleFunc("/Status", status)
|
|
|
+ http.ListenAndServe(":8080", nil)
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+var re = regexp.MustCompile("(\\d+\\.)(\\d+\\.\\d+)(\\.\\d+)")
|
|
|
+
|
|
|
+func status(w http.ResponseWriter, r *http.Request) {
|
|
|
+ fmt.Fprintf(w, "niv794\n")
|
|
|
+ response, error := http.Get("https://api.ipify.org/?format=text") //API IP-адрес
|
|
|
+ if error != nil {
|
|
|
+ fmt.Println(error)
|
|
|
+ }
|
|
|
+
|
|
|
+ body, error := io.ReadAll(response.Body)
|
|
|
+ if error != nil {
|
|
|
+ fmt.Println(error)
|
|
|
+ }
|
|
|
+
|
|
|
+ response.Body.Close()
|
|
|
+
|
|
|
+ out := re.ReplaceAllString(string(body), "$1***.***$3") //сокрытие октета
|
|
|
+ fmt.Fprint(w, "IP-address: ", out, "\n")
|
|
|
+ now := time.Now()
|
|
|
+ fmt.Fprintf(w, now.Format("2006-01-02 3:4:5 pm")) //дата
|
|
|
+}
|