code: func (d *Interfaces) detectVIP(interfaces []string) {
  
  	var keyConfCluster pfconfigdriver.NetInterface
  	keyConfCluster.PfconfigNS = "config::Pf(CLUSTER," + pfconfigdriver.FindClusterName(ctx) + ")"
  
  	for _, v := range interfaces {
  		keyConfCluster.PfconfigHashNS = "interface " + v
  		pfconfigdriver.FetchDecodeSocket(ctx, &keyConfCluster)
  		// Nothing in keyConfCluster.Ip so we are not in cluster mode
  		if keyConfCluster.Ip == "" {
  			VIP[v] = true
  			continue
  		}
  
  		if _, found := VIP[v]; !found {
  			VIP[v] = false
  		}
  
  		eth, _ := net.InterfaceByName(v)
  		adresses, _ := eth.Addrs()
  		var found bool
  		found = false
  		for _, adresse := range adresses {
  			IP, _, _ := net.ParseCIDR(adresse.String())
  			VIPIp[v] = net.ParseIP(keyConfCluster.Ip)
  			if IP.Equal(VIPIp[v]) {
  				found = true
  				if VIP[v] == false {
  					log.LoggerWContext(ctx).Info(v + " got the VIP")
  					if h, ok := intNametoInterface[v]; ok {
  						go h.handleApiReq(ApiReq{Req: "initialease", NetInterface: v, NetWork: ""})
  					}
  					VIP[v] = true
  				}
  			}
  		}
  		if found == false {
  			VIP[v] = false
  		}
  	}
  }
docs: // Detect the vip on each interfaces