У меня была похожая проблема - проверить доступен ли хост.
Как я понял TIdICMPClient работает лиш при наличии root. Даже под win надо "as administrator" запускать.
Были варианты вызвать системную команду PING и анализировать результат, но сложно.
Проблему обошол с помощью IdTCPClient.
function CheckInternet: boolean;
begin
result:=false;
try
IdTCPClient1.ReadTimeout:=200;
IdTCPClient1.ConnectTimeout:=200;
IdTCPClient1.Port:=Port;
IdTCPClient1.Host:=Server;
IdTCPClient1.Connect;
IdTCPClient1.Disconnect;
result:=true;
except
result:=false;
end;
end;
Если надо время отклика проверит - не подойдот. А для доступности по моему ок!