summaryrefslogtreecommitdiff
path: root/whoami.go
diff options
context:
space:
mode:
Diffstat (limited to 'whoami.go')
-rw-r--r--whoami.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/whoami.go b/whoami.go
new file mode 100644
index 0000000..de583e9
--- /dev/null
+++ b/whoami.go
@@ -0,0 +1,43 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "html"
+ "log"
+ "net/http"
+ "sort"
+)
+
+func RequestHandler(w http.ResponseWriter, r *http.Request) {
+
+ fmt.Fprintf(w, "\"Host\": %q\n", html.EscapeString(r.Host))
+ fmt.Fprintf(w, "\"IP\": %q\n", html.EscapeString(r.RemoteAddr))
+ fmt.Fprintf(w, "\"URI\": %q\n", html.EscapeString(r.RequestURI))
+
+ keys := make([]string, 0)
+ for k, _ := range r.Header {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+ for _, k := range keys {
+ for _, value := range r.Header[k] {
+ fmt.Fprintf(w, "%q: %q\n", html.EscapeString(k), html.EscapeString(value))
+ }
+ }
+}
+
+func main() {
+
+ var (
+ host string
+ port uint64
+ )
+ flag.StringVar(&host, "host", "127.0.0.1", "IP address to listen on")
+ flag.Uint64Var(&port, "port", 8080, "Port to listen on (default 8080)")
+ flag.Parse()
+
+ http.HandleFunc("/", RequestHandler)
+ fmt.Printf("Listening on %v port %v (http://%v:%v/)\n", host, port, host, port)
+ log.Fatal(http.ListenAndServe(fmt.Sprintf("%s:%d", host, port), nil))
+}