Merge branch 'master' of git.hatter.ink:hatter/golang-tests

This commit is contained in:
2025-01-25 16:52:58 +08:00

View File

@@ -0,0 +1,47 @@
package main
import (
"fmt"
"log"
"net"
"os"
"net/http"
)
func main() {
listen := "0.0.0.0:8000"
log.Print("Start simple server at port: ", listen)
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(listen, nil))
}
func handler(w http.ResponseWriter, r *http.Request) {
log.Println("request from address: ", r.RemoteAddr)
fmt.Fprintf(w, "%s %s %s\n", r.Method, r.URL, r.Proto)
for k, v := range r.Header {
fmt.Fprintf(w, "Header[%q] = %q\n", k, v)
}
fmt.Fprintf(w, "Host = %q\n", r.Host)
fmt.Fprintf(w, "RemoteAddr = %q\n", r.RemoteAddr)
if err := r.ParseForm(); err != nil {
log.Print(err)
}
for k, v := range r.Form {
fmt.Fprintf(w, "Form[%q] = %q\n", k, v)
}
fmt.Fprintf(w, "\n===> local IP: %q\n\n",GetOutboundIP())
//fmt.Fprintf(w, "Env message = %s\n", os.Getenv("message"))
}
func GetOutboundIP() net.IP {
conn, err := net.Dial("udp", "8.8.8.8:80")
if err != nil {
log.Fatal(err)
}
defer conn.Close()
localAddr := conn.LocalAddr().(*net.UDPAddr)
return localAddr.IP
}