generated from VLADIMIR/template
add local ip
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
|||||||
"evening_detective_server/internal/modules/cleaner"
|
"evening_detective_server/internal/modules/cleaner"
|
||||||
"evening_detective_server/internal/modules/email_sender"
|
"evening_detective_server/internal/modules/email_sender"
|
||||||
"evening_detective_server/internal/modules/file_storage"
|
"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/password_generator"
|
||||||
"evening_detective_server/internal/modules/processor_jwt"
|
"evening_detective_server/internal/modules/processor_jwt"
|
||||||
"evening_detective_server/internal/modules/scenario_archive"
|
"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 gRPC-Gateway on http://0.0.0.0:8090")
|
||||||
log.Println("Serving docs on http://0.0.0.0:8090/docs")
|
log.Println("Serving docs on http://0.0.0.0:8090/docs")
|
||||||
|
logLocalAddresses()
|
||||||
log.Fatalln(gwServer.ListenAndServe())
|
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 {
|
func cors(h http.Handler) http.Handler {
|
||||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Header().Set("Access-Control-Allow-Origin", "*")
|
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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user