code: func NewProxier(loadBalancer LoadBalancer, listenIP net.IP, netsh netsh.Interface, pr utilnet.PortRange, syncPeriod, udpIdleTimeout time.Duration) (*Proxier, error) {
  	if listenIP.Equal(localhostIPv4) || listenIP.Equal(localhostIPv6) {
  		return nil, ErrProxyOnLocalhost
  	}
  
  	hostIP, err := utilnet.ChooseHostInterface()
  	if err != nil {
  		return nil, fmt.Errorf("failed to select a host interface: %v", err)
  	}
  
  	klog.V(2).Infof("Setting proxy IP to %v", hostIP)
  	return createProxier(loadBalancer, listenIP, netsh, hostIP, syncPeriod, udpIdleTimeout)
  }
docs: // NewProxier returns a new Proxier given a LoadBalancer and an address on
  // which to listen. It is assumed that there is only a single Proxier active
  // on a machine. An error will be returned if the proxier cannot be started
  // due to an invalid ListenIP (loopback)