From 5dcb85b1538a44cb682ac3fab78c11bfdecd653d Mon Sep 17 00:00:00 2001 From: Jonathan Nguyen Date: Tue, 15 Apr 2025 15:43:53 -0700 Subject: [PATCH 1/2] query nics for ip addresses --- pkg/net/net.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/pkg/net/net.go b/pkg/net/net.go index 1ff9f65c..29209860 100644 --- a/pkg/net/net.go +++ b/pkg/net/net.go @@ -22,6 +22,40 @@ func GetIPAddress() (string, error) { return conn.LocalAddr().(*net.UDPAddr).IP.String(), nil } +func GetIpAddresses() ([]string, error) { + var ipv4Addresses []string + + interfaces, err := net.Interfaces() + if err != nil { + return nil, err + } + + for _, iface := range interfaces { + addrs, err := iface.Addrs() + if err != nil { + return nil, err + } + + for _, addr := range addrs { + var ip net.IP + + switch v := addr.(type) { + case *net.IPNet: + ip = v.IP + case *net.IPAddr: + ip = v.IP + } + + // Check if the IP address is IPv4 + if ip != nil && ip.To4() != nil { + ipv4Addresses = append(ipv4Addresses, ip.String()) + } + } + } + + return ipv4Addresses, nil +} + func StringToNetIPAddress(ipString string) net.IP { return net.ParseIP(ipString) } From 66136970c8bbf0ce6a716ad8ae25f801f0b25d72 Mon Sep 17 00:00:00 2001 From: Jonathan Nguyen Date: Wed, 16 Apr 2025 09:52:52 -0700 Subject: [PATCH 2/2] use ipv6 addr --- pkg/net/net.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkg/net/net.go b/pkg/net/net.go index 29209860..57288b07 100644 --- a/pkg/net/net.go +++ b/pkg/net/net.go @@ -23,7 +23,7 @@ func GetIPAddress() (string, error) { } func GetIpAddresses() ([]string, error) { - var ipv4Addresses []string + var ipAddresses []string interfaces, err := net.Interfaces() if err != nil { @@ -46,14 +46,13 @@ func GetIpAddresses() ([]string, error) { ip = v.IP } - // Check if the IP address is IPv4 - if ip != nil && ip.To4() != nil { - ipv4Addresses = append(ipv4Addresses, ip.String()) + if ip != nil { + ipAddresses = append(ipAddresses, ip.String()) } } } - return ipv4Addresses, nil + return ipAddresses, nil } func StringToNetIPAddress(ipString string) net.IP {