// IPAddresses returns all IP addresses. func (c *Container) IPAddresses() ([]string, error) { if err := c.makeSure(isDefined | isRunning); err != nil { return nil, err } c.mu.RLock() defer c.mu.RUnlock() result := C.go_lxc_get_ips(c.container, nil, nil, 0) if result == nil { return nil, ErrIPAddresses } return convertArgs(result), nil }
// IPv6Addresses returns all IPv6 addresses. func (c *Container) IPv6Addresses() ([]string, error) { if err := c.makeSure(isDefined | isRunning); err != nil { return nil, err } c.mu.RLock() defer c.mu.RUnlock() cfamily := C.CString("inet6") defer C.free(unsafe.Pointer(cfamily)) result := C.go_lxc_get_ips(c.container, nil, cfamily, 0) if result == nil { return nil, ErrIPv6Addresses } return convertArgs(result), nil }
// IPAddress returns the IP address of the given network interface. func (c *Container) IPAddress(interfaceName string) ([]string, error) { if err := c.makeSure(isDefined | isRunning); err != nil { return nil, err } c.mu.RLock() defer c.mu.RUnlock() cinterface := C.CString(interfaceName) defer C.free(unsafe.Pointer(cinterface)) result := C.go_lxc_get_ips(c.container, cinterface, nil, 0) if result == nil { return nil, ErrIPAddress } return convertArgs(result), nil }