add local ip

This commit is contained in:
2026-09-21 21:10:25 +07:00
parent bdf48f4e99
commit aa4b2f5d48
2 changed files with 41 additions and 0 deletions
+14
View File
@@ -8,6 +8,7 @@ import (
"evening_detective_server/internal/modules/cleaner"
"evening_detective_server/internal/modules/email_sender"
"evening_detective_server/internal/modules/file_storage"
"evening_detective_server/internal/modules/network_utils"
"evening_detective_server/internal/modules/password_generator"
"evening_detective_server/internal/modules/processor_jwt"
"evening_detective_server/internal/modules/scenario_archive"
@@ -335,9 +336,22 @@ func main() {
log.Println("Serving gRPC-Gateway on http://0.0.0.0:8090")
log.Println("Serving docs on http://0.0.0.0:8090/docs")
logLocalAddresses()
log.Fatalln(gwServer.ListenAndServe())
}
func logLocalAddresses() {
addrs, err := network_utils.GetLocalIPv4Addresses()
if err != nil {
log.Printf("Unable to detect local network address: %v", err)
return
}
for _, ip := range addrs {
log.Printf("Local network: http://%s:8090 (docs: http://%s:8090/docs/)", ip, ip)
}
}
func cors(h http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
@@ -0,0 +1,27 @@
package network_utils
import "net"
// GetLocalIPv4Addresses returns non-loopback IPv4 addresses of the host.
func GetLocalIPv4Addresses() ([]string, error) {
addrs, err := net.InterfaceAddrs()
if err != nil {
return nil, err
}
var result []string
for _, addr := range addrs {
var ip net.IP
switch addr := addr.(type) {
case *net.IPNet:
ip = addr.IP
case *net.IPAddr:
ip = addr.IP
}
if ip == nil || ip.IsLoopback() || ip.To4() == nil {
continue
}
result = append(result, ip.String())
}
return result, nil
}