feat: add simple http server
This commit is contained in:
47
simple_httpserver/simpleserver.go
Normal file
47
simple_httpserver/simpleserver.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user