@@ 5,6 5,7 @@ import (
"fmt"
"io/fs"
"log"
+ "net"
"net/http"
"os"
"path"
@@ 26,7 27,7 @@ func main() {
},
}),
UploadDir: "./upload",
- Addr: ":54321",
+ Addr: getOutboundIP().String() + ":54321",
}.run()
if err != nil {
log.Fatal(err)
@@ 87,7 88,7 @@ func (s server) run() error {
mux.Handle("/files/", http.StripPrefix("/files/", handler))
mux.Handle("/", http.FileServer(s.PublicDir))
- log.Println("Listening on " + s.Addr)
+ log.Println("Listening on http://" + s.Addr)
return http.ListenAndServe(s.Addr, mux)
}
@@ 117,3 118,16 @@ type subFS struct {
func (s subFS) Open(name string) (fs.File, error) {
return s.fs.Open(path.Join(s.folder, name))
}
+
+// Get preferred outbound ip of this machine
+func getOutboundIP() net.IP {
+ conn, err := net.Dial("udp", "1.1.1.1:80")
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer conn.Close()
+
+ localAddr := conn.LocalAddr().(*net.UDPAddr)
+
+ return localAddr.IP
+}