Go API Documentation

github.com/TykTechnologies/tyk/internal/netutil

No package summary is available.

Package

Files: 1. Third party imports: 0. Imports from organisation: 0. Tests: 0. Benchmarks: 0.

Vars

var (
	netInterfaceAddrs = net.InterfaceAddrs	// used to allow mocking in tests
)

Functions

func GetIpAddress

GetIpAddress returns the list of non-loopback IP address (IPv4 and IPv6) found. Returns error if it fails to get the list of addresses, empty if there's no valid IP addresses.

func GetIpAddress() ([]string, error) {
	var (
		ips		[]string
		addrs, err	= netInterfaceAddrs()
	)

	if err != nil {
		return []string{}, err
	}

	for _, addr := range addrs {
		if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
			if ipAdrr := ipnet.IP.To16(); ipAdrr != nil {
				ips = append(ips, ipAdrr.String())
			}
		}
	}

	return ips, nil
}

Cognitive complexity: 10, Cyclomatic complexity: 6

Uses: net.IPNet.

Tests

Files: 1. Third party imports: 1. Imports from organisation: 0. Tests: 1. Benchmarks: 0.

Test functions

Test_GetIpAddress

References: assert.Equal, assert.Error, assert.NoError, fmt.Errorf, net.Addr, net.CIDRMask, net.IPNet, net.IPv4Mask, net.InterfaceAddrs, net.ParseIP, testing.T.