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