He visto que no aparece una función en el foro, que realice un ping como el que buscas en delphi, es decir pasando la dirección como una url y no como una IP.
En un rato libre me entretenido en realizar una unit, en delphi 7, para realizar ping. El código de la función es el siguiente:
function Ping(Addr: PCHAR; Rep: integer = 3): boolean;
var
WSA: TWSAData;
hIcmpFile: Cardinal;
Reply: ICMP_ECHO_REPLY;
He: Phostent;
begin
Result:= false;
// Inicializar WinSock
if WSAStartup(MAKEWORD(1, 1), WSA) <> 0 then exit;
//Obtener IP de Addr
He:= gethostbyname(Addr);
if He = nil then exit;
// Envia Ping
hIcmpFile:= IcmpCreateFile;
repeat
Result:= IcmpSendEcho(hIcmpFile, PULONG(He.h_addr_list^)^, 0, 0, 0, PCHAR(@Reply), sizeof(ICMP_ECHO_REPLY), 1000) <> 0;
if Result then
Result:= Reply.Status = 0; // Error en Ping el Host no lo recibe....
dec(Rep);
until Result or (Rep = 0);
// Cerrar...
IcmpCloseHandle(hIcmpFile);
WSACleanup;
end;
Addr: La dirección, se puede pasar como una IP clásica o como una URL.
Rep: Número de intentos de envío antes de dar por fracasado el ping, por defecto 3.
Un ejemplo de uso:
if Ping('[url=http://www.google.es]www.google.es[/url]') then
Label1.Caption := 'Exito'
else
Label1.Caption := 'Fracaso';
Subo el código de la UNIT y una aplicación de ejemplo.
Espero que pueda ser de utilidad.
PD:
madiazg, lo he probado en una VM con Win 7 en red y me funciona con IP y Nombres de PC. No he podido probar contra URL en internet por problemas del proxy, pero creo que debe funcionar. Cuando pueda hacer la prueba completa aviso si alguien no lo hace antes.
Saludos.