Files
voicepaste/internal/server/net.go

22 lines
414 B
Go

package server
import (
"fmt"
"net"
)
// GetLANIP returns the first non-loopback IPv4 address.
func GetLANIP() (string, error) {
addrs, err := net.InterfaceAddrs()
if err != nil {
return "", err
}
for _, addr := range addrs {
if ipNet, ok := addr.(*net.IPNet); ok && !ipNet.IP.IsLoopback() && ipNet.IP.To4() != nil {
return ipNet.IP.String(), nil
}
}
return "", fmt.Errorf("no LAN IP found")
}