code: protected String acquireIpAddress( TargetHandlerParameters parameters, String machineId ) {
  
  		// Load IP addresses on demand (that's the case if we are in this method).
  		// This implementation is compliant with a same IP address being used in
  		// several "target.properties" files.
  		String result = null;
  		String ips = parameters.getTargetProperties().get( IP_ADDRESSES );
  		ips = ips == null ? "" : ips;
  		for( String ip : Utils.splitNicely( ips, "," )) {
  			if( Utils.isEmptyOrWhitespaces( ip ))
  				continue;
  
  			if( this.usedIps.putIfAbsent( ip, 1 ) == null ) {
  				this.machineIdToIp.put( machineId, ip );
  				result = ip;
  				save( this );
  				break;
  			}
  		}
  
  		return result;
  	}
docs: Acquires an IP address among available ones.
  @param parameters the target parameters
  @param machineId the machine ID
  @return The acquired IP address