in tester/dhcpv4/tester.go [80:102]
func getLocalIPv4(ifname string) (net.IP, error) {
iface, err := net.InterfaceByName(ifname)
if err != nil {
//nolint:wrapcheck
return nil, err
}
ifaddrs, err := iface.Addrs()
if err != nil {
//nolint:wrapcheck
return nil, err
}
for _, ifaddr := range ifaddrs {
if ipnet, ok := ifaddr.(*net.IPNet); ok {
if ipnet.IP.To4() != nil && !ipnet.IP.IsLoopback() && !ipnet.IP.IsLinkLocalUnicast() {
return ipnet.IP, nil
}
}
}
return nil, fmt.Errorf("%w, interface: %s", ErrNoAddress, ifname)
}