Este script muestra como obtener los registros DNS de un sitio web o una direccion IP utilizando la funcion dns_get_record de PHP
$hostname = "sitioweb_o_direccionip";
$result = dns_get_record($hostname);
/* La funcion dns_get_record() nos retorna un arreglo del obtenemos todos los registros
NS que nos servira para extraer los servidores DNS que responden por el sitio web o
direccion IP que estamos investigando donde solo obtendremos el nombre del servidor
y la direccion ip*/
foreach ($result as $line) {
if($line['type'] == "A"){
$server_ip = $line['ip'];
}
}
echo "DNS Servers\n";
foreach ($result as $line) {
if($line['type']=="NS")
{
$ip = gethostbyname($line['target']);
if ($ip != $server_ip) {
echo $line['target']."\t".$ip."\n";
}
}
}
/*Luego detallamos separadamente todos los registros linea por linea que fue respondida a nuestra
solicitud con la funcion dns_get_record()*/
echo "Answer records\n";
foreach($result as $record => $element) {
foreach($element as $key => $value) {
echo "$key:\t\t $value\n";
}
echo "\n";
}
}
Si por ejemplo el host del cual deseamos obtener los registros dns es "gmail.com" obtendriamos un resultado parecido al siguiente:
DNS Servers
ns3.google.com 216.239.36.10
ns4.google.com 216.239.38.10
ns2.google.com 216.239.34.10
ns1.google.com 216.239.32.10
Answer records
host: gmail.com
type: MX
pri: 20
target: alt2.gmail-smtp-in.l.google.com
class: IN
ttl: 3343
host: gmail.com
type: NS
target: ns3.google.com
class: IN
ttl: 62485
host: gmail.com
type: A
ip: 173.194.35.22
class: IN
ttl: 35
host: gmail.com
type: MX
pri: 30
target: alt3.gmail-smtp-in.l.google.com
class: IN
ttl: 3343
host: gmail.com
type: MX
pri: 5
target: gmail-smtp-in.l.google.com
class: IN
ttl: 3343
host: gmail.com
type: NS
target: ns4.google.com
class: IN
ttl: 62485
host: gmail.com
type: NS
target: ns2.google.com
class: IN
ttl: 62485
host: gmail.com
type: MX
pri: 40
target: alt4.gmail-smtp-in.l.google.com
class: IN
ttl: 3343
host: gmail.com
type: NS
target: ns1.google.com
class: IN
ttl: 62485
host: gmail.com
type: A
ip: 173.194.35.21
class: IN
ttl: 35
host: gmail.com
type: MX
pri: 10
target: alt1.gmail-smtp-in.l.google.com
class: IN
ttl: 3343
Buena forma para sacar toda la información que da dns_get_record()
ResponderEliminarGracias!
Gracias a ti por comentar, saludos!
Eliminar