Open vaakian opened 2 years ago
存下来自用
package main import ( "flag" "fmt" "net" "net/http" ) func GetOutboundIP() net.IP { addrs, _ := net.InterfaceAddrs() for _, address := range addrs { if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { if ipnet.IP.To4() != nil { return ipnet.IP } } } return net.IPv4(127, 0, 0, 1) } func main() { port := "8081" dir := "./" flag.StringVar(&port, "p", "28081", "port to listen on") flag.StringVar(&dir, "d", "./", "port to listen on") flag.Parse() fmt.Printf("http server listening on [http://%s:%s] -> [%s]\n", GetOutboundIP(), port, dir) // http.Handle("/", http.FileServer(http.Dir(dir))) fileHandler := http.FileServer(http.Dir(dir)) http.ListenAndServe(":"+port, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Add("Expires", "0") w.Header().Add("Cache-Control", "max-age=0, no-cache, must-revalidate, proxy-revalidate") fmt.Printf("%s %s %s\n", r.RemoteAddr, r.Method, r.URL) fileHandler.ServeHTTP(w, r) })) }
存下来自用