Saltar al contenido
Php

Capturar los datos del registro de un dominio | Whois

En esta entrada pongo el código que nos devolverá los datos de registro de una web.

Es necesario que tengas instalado Whois en tu servidor linux, en este caso el script ejecutará el comando whois en tu máquina y de los datos que devuelva el comando sacará el email y el teléfono y los mostrará por pantalla.

Capturar los datos del registro de un dominio | Whois

//Types of input 
$typesOfInput = array("Registrant", "Admin", "Tech");
$typesOfAttributes = array("Name:", "Organization:", "Street:", "City:", "State/Province:", "Postal Code:", "Phone:", "Phone Ext:", "Email:");
$output = array();
function get_item($output, $request) {
	$count = strlen($request);
	if (strpos($output, $request) !== false) {
		$temp = substr($output, strpos($output,$request)+$count);
		$payload = substr($output, strpos($output, $request)+$count, strpos($temp,'"'));
		return $payload;
	} else {
		return '';
	}
}
$i = 0;
$websitesToBeAnalyzed = array('prestashop.com',
'prestafox.com');
 
foreach ($websitesToBeAnalyzed as $key => $value) {
 	$website = $value;
	$command = "whois $website";
	exec($command, $output, $exit_code);
	$output = json_encode($output);
	$registrantEmail = get_item($output,"Registrant Email:");
	$registrantName = get_item($output,"Registrant Name:");
	$registrantStreet = get_item($output,"Registrant Street:");
	$registrantCity = get_item($output,"Registrant City:");
	$registrantState = get_item($output,"Registrant State/Province:");
	$registrantTelephone = get_item($output,"Registrant Phone:");
	$administrativeEmail =  get_item($output,"Admin Email:");
 
	$technicalEmail =  get_item($output,"Tech Email:");;
 
	$additionalEmails = '';
	if ($administrativeEmail !== $registrantEmail) {
		$additionalEmails = $additionalEmails . $administrativeEmail;
	}
	if ($technicalEmail !== $registrantEmail) {
		$additionalEmails = $additionalEmails . $technicalEmail;
	}
 
 
 
	echo "$i - El email de $website es $registrantEmail, el nombre del registro es $registrantName, el telefono es $registrantTelephone, los emails extra encontrados son $additionalEmails <br>";
 
	$i++;	
 
	//Allows the response to be outputted whil script runs & throttles number of requests
	flush();
	ob_flush();
	usleep(rand(2000000,4000000));
}