Ethernet, chamar função passando IP.

Não estou conseguindo chamar a função ao mesmo tempo que envio o IP como parâmetro. Ocorre o erro too many arguments to function ‘int ping()’
Como posso corrigir?

#include <SPI.h>
#include <Ethernet.h>
#include <ICMPPing.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 0, 2);
IPAddress external_ip(8,8,8,8);
int test;

void setup() 
{
  Serial.begin(9600);
  Ethernet.begin(mac, ip);
}

void loop() {
test = ping(external_ip);
if (test == 0)
Serial.println("Falha de conexão");
else
Serial.println("Conexão OK");
}

int ping(){
/*
.........
.........
*/
}

Portanto... defines ping assim:

int ping(){}

E depois chamas ping assim:

test = ping(external_ip);

Se a definicão não tem variáveis de entrada... porque é que chamas a funcão com uma variável? Queres milagres?

Essa funcão não está definida no ICMPPing.h? Viste o exemplo na pasta do ICMPPing.h??

Estou a perceber, obrigado!