Problema com DHCP em WebServer

Olá Pessoal, estou com um problema já faz algum tempo, tenho uma api rodando no
arduino que recebe dados e com base nesses dados realiza as funçoes correspondentes.

Até aqui tudo bem, o problema é que gostaria de obter o ip baseado no DHCP da rede
ao invés de usar um ip fixo, estou usando um arduino uno e um shield w500, vamos
aos exemplos:

Este exemplo que tirei do próprio site do arduino funcionou beleza como cliente:

...
  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // try to congifure using IP address instead of DHCP:
    Ethernet.begin(mac, ip);
  }
...

Tentei adaptar para o servidor mas não consegui fazer funcionar…

// Declaração de biblioteca(s)
#include <SPI.h>
#include <Ethernet.h>

byte mac [ ] = {0xDE , 0xAD , 0xBE , 0xEF , 0xFB , 0xED};
byte ip [ ] = { 10, 1, 1, 4};

EthernetServer server(80);

void setup (){
  Serial.begin (9600);

  // Se conexão DHCP falhar
  //if (Ethernet.begin (mac) == 0){
    // Mostra mensagem de erro
  //  Serial.println("Falha ao Configurar DHCP...");
    // Tenta conectar usando IP Fixo, DNS e Gatway
  //  Ethernet.begin (mac, {192,168,0,99}, {8,8,8,8}, {192,168,0,1});
  //}else{
    // Mensagem DHCP configurado com sucesso
  //  Serial.println("DHCP Configurado Com Sucesso...");
  //}

  [color=red]//Ethernet.begin(mac, ip);
  Ethernet.begin(mac);[/color]
  
  // Inicia servidor
  server.begin();
  
  // Mostrar IP (Debug)
  Serial.print ("Servidor está em: ");
  Serial.println (Ethernet.localIP());
}

void loop() {

}

Se eu uso “Ethernet.begin(mac, ip);” funciona tudo ok, porém
se eu não passar o ip fixo como no exemplo cliente do arduino
“Ethernet.begin(mac);” não funciona…

Etive testando a API aREST do marcoschwartz e ele conseguiu
subir o servidor usando DHCP mas não consegui achar o local
que ele faz isso. Alguem poderia me dar uma força?

Github aREST: