|
|
 |
dns_get_record (PHP 5) dns_get_record --
Recuperar Registros de Recursos DNS asociados con un nombre de
servidor huésped
Descripciónarray dns_get_record ( string nombre_host [, int tipo [, array &authns, array &addtl]] )
Nota:
Esta función no está implementada en plataformas
Windows, ni funciona (actualmente) en systemas *BSD. Pruebe
con la clase PEAR Net_DNS.
Esta función devuelve una matriz de matrices
asociativas. Cada matriz asociativa contiene por lo
menos las siguientes claves:
Tabla 1. Atributos DNS básicos | Atributo | Significado |
|---|
| host |
El registro en el espacio de nombres DNS al que hacen
referencia el resto de datos asociados.
| | class |
dns_get_record() devuelve
únicamente registros de clase Internet y como tal,
éste parámetro siempre
devolverá IN.
| | type |
Cadena que contiene el tipo de registro. Otros atributos
adicionales serán contenidos también en la
matriz resultante dependiendo del valor de type. Vea la
tabla más adelante.
| | ttl |
Valor Time To Live restante para este
registro. Este no será igual al
ttl original del registro, sino que será igual al
ttl original menos cualquiera que haya sido la longitud de
tiempo transcurrido desde que el servidor de nombres
oficial fuera consultado.
|
nombre_host debe ser un nombre de
servidor huésped DNS válido, como
"www.example.com". Pueden generarse consultas revertidas usando
la notación in-addr.arpa, pero
gethostbyaddr() es más apropiada para
la mayorÃa de consultas revertidas.
Por defecto, dns_get_record() buscará
por cualquier registro de recurso asociado con
nombre_host. Para limitar la consulta,
especifique el parámetro opcional
tipo. tipo puede
ser cualquiera de los siguientes: DNS_A,
DNS_CNAME, DNS_HINFO,
DNS_MX, DNS_NS,
DNS_PTR, DNS_SOA,
DNS_TXT, DNS_AAAA,
DNS_SRV, DNS_NAPTR,
DNS_A6, DNS_ALL o
DNS_ANY. El valor predeterminado es
DNS_ANY.
Nota:
Debido a excentricidades en el rendimiento de libresolv entre
plataformas, DNS_ANY no siempre
devolverá todos los registros, la alternativa
más lenta DNS_ALL
recolectará todos los registros de forma más
confiable.
Los opcionales tercer y cuarto argumento de esta función,
authns y addtl son
pasados por referencia y, si son usados, serán llenados
con Registros de Recurso para los Servidores de
Nombres Oficiales, y cualquier Registro
Adicional respectivamente. Vea el ejemplo más
adelante.
Tabla 2. Otras claves en las matrices asociativas, dependientes
de 'type' | Tipo | Columnas Extra |
|---|
| A |
ip: Una dirección IPv4 en
notación decimal con puntos.
| | MX |
pri: Prioridad del gestor de
correo. Números bás bajos indican mayor
prioridad.
target: FQDN del gestor de correo. Vea
también dns_get_mx().
| | CNAME |
target: FQDN de la ubicación en
el espacio de nombres DNS de la cual es alias el registro.
| | NS |
target: FQDN del servidor de nombres que
es la autoridad para este nombre de host.
| | PTR |
target: Ubicación dentro del
espacio de nombres DNS a la que apunta este registro.
| | TXT |
txt: Cadena de datos arbitraria asociada
con este registro.
| | HINFO |
cpu: Número IANA que indica el
CPU de la máquina referenciada por este registro.
os: Número IANA que indica el
Sistema Operativo en la máquina referenciada por
este registro. Vea los Nombres de Sistemas
Operativos de IANA para consultar el significado de
estos valores.
| | SOA |
mname: FQDN de la máquina desde
donde se originaron los registros de recurso.
rname: Dirección de correo
electrónico del contacto administrativo para este
dominio.
serial: # serial de esta revisión
del dominio solicitado.
refresh: Intervalo de
actualización (segundos) que deben usar los
servidores de nombre secundarios cuando actualicen las
copias remotas de este dominio.
retry: Periodo de tiempo (segundos) para
esperar después de una actualización fallida
antes de hacer un segundo intento.
expire: Periodo máximo de tiempo
(segundos) que un servidor DNS secundario debe conservar
copias remotas de los datos de zona sin una
actualización exitosa antes de descartarlos.
minimum-ttl: Periodo mÃnimo de
tiempo (segundos) en el que un cliente puede continuar
usando una resolución DNS antes de que deba
solicitar una nueva resolución del servidor. Puede
ser sobrescrito por registros de recurso individuales.
| | AAAA |
ipv6: Dirección IPv6
| | A6(PHP >= 5.1.0) |
masklen: Longitud (en bits) para heredar
del destino especificado por chain.
ipv6: Dirección para mezclar este
registro especÃfico con
chain. chain:
Registro padre a mezclar con los datos de
ipv6.
| | SRV |
pri: (Prioridad) las prioridades
más bajas deben ser usadas primero.
weight: Rangos para pesar cuál de
los destinos comunmente con
prioridades debe ser elegido al azar.
target y port: nombre
de servidor huésped y puerto en dondo puede
encontrarse el servicio solicitado. Para más
información, vea: RFC
2782
| | NAPTR |
order y pref: Equivalente a
pri y weight
descritos anteriormente.
flags, services,
regex, y replacement:
Parámetros, como se definen por RFC 2915.
|
Nota:
Debido a estándares DNS, las direcciones de correo
electrónico son dadas en formato usuario.host (por
ejemplo: hostmaster.example.com en lugar de
hostmaster@example.com), asegúrese de chequear este
valor y modificarlo si es necesario antes de usarlo con
funciones como mail().
Ejemplo 1. Uso de dns_get_record() |
<?php
$resultado = dns_get_record("php.net");
print_r($resultado);
?>
|
Produce una salida similar a la siguiente:
Array
(
[0] => Array
(
[host] => php.net
[type] => MX
[pri] => 5
[target] => pair2.php.net
[class] => IN
[ttl] => 6765
)
[1] => Array
(
[host] => php.net
[type] => A
[ip] => 64.246.30.37
[class] => IN
[ttl] => 8125
)
) |
|
Ya que es muy común desear la dirección IP de un
servidor de correo una vez el registro MX ha sido resuelto,
dns_get_record() también devuelve una
matriz en addtl la cual contiene
registros asociados. authns es devuelto
también, conteniendo una lista de servidores de nombre
oficiales.
Ejemplo 2. Uso de dns_get_record() y
DNS_ANY |
<?php
$resultado = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
echo "Resultado = ";
print_r($resultado);
echo "Auth NS = ";
print_r($authns);
echo "Adicional = ";
print_r($addtl);
?>
|
Produce una salida similar a la siguiente:
Result = Array
(
[0] => Array
(
[host] => php.net
[type] => MX
[pri] => 5
[target] => pair2.php.net
[class] => IN
[ttl] => 6765
)
[1] => Array
(
[host] => php.net
[type] => A
[ip] => 64.246.30.37
[class] => IN
[ttl] => 8125
)
)
Auth NS = Array
(
[0] => Array
(
[host] => php.net
[type] => NS
[target] => remote1.easydns.com
[class] => IN
[ttl] => 10722
)
[1] => Array
(
[host] => php.net
[type] => NS
[target] => remote2.easydns.com
[class] => IN
[ttl] => 10722
)
[2] => Array
(
[host] => php.net
[type] => NS
[target] => ns1.easydns.com
[class] => IN
[ttl] => 10722
)
[3] => Array
(
[host] => php.net
[type] => NS
[target] => ns2.easydns.com
[class] => IN
[ttl] => 10722
)
)
Additional = Array
(
[0] => Array
(
[host] => pair2.php.net
[type] => A
[ip] => 216.92.131.5
[class] => IN
[ttl] => 6766
)
[1] => Array
(
[host] => remote1.easydns.com
[type] => A
[ip] => 64.39.29.212
[class] => IN
[ttl] => 100384
)
[2] => Array
(
[host] => remote2.easydns.com
[type] => A
[ip] => 212.100.224.80
[class] => IN
[ttl] => 81241
)
[3] => Array
(
[host] => ns1.easydns.com
[type] => A
[ip] => 216.220.40.243
[class] => IN
[ttl] => 81241
)
[4] => Array
(
[host] => ns2.easydns.com
[type] => A
[ip] => 216.220.40.244
[class] => IN
[ttl] => 81241
)
) |
|
Vea también dns_get_mx(), y
dns_check_record()
marcus at synchromedia dot co dot uk
01-Feb-2006 04:02
The docs say "nor does it (currently) work on *BSD systems". Unfortunately this includes MacOS X. It's just not there in my build of 5.1.2 running on 10.4.4.
ed at noxserver dot com
24-Mar-2005 05:44
I recently needed to do some name server and IP discovery on the fly.
Server and domain monitoring system. If you've got a system with dig
the below seems to work fine for discovering name server and a
addresses. Shouldn't be hard for you to modify it for the other records if
needed.
$_REQUEST[url] = "http://www.example.com/";
$url_parts = parse_url($_REQUEST[url]);
$dns = Dig($url_parts[host]);
print_r($dns[name_servers]);
print_r($dns[ips]);
function Dig ($domain) {
$dig = `dig $domain`;
preg_match_all("/in\s+ns\s+(.+?)\s+/is"
,$dig,$name_servers,PREG_PATTERN_ORDER);
preg_match_all("/$domain.\s+[0-9]+\s+in\s+a\s+([0-9.]+)\s+/is"
,$dig,$ips,PREG_PATTERN_ORDER);
$dns[name_servers] = $name_servers[1];
$dns[ips] = $ips[1];
return($dns);
}
| |
| | Citas célebres | Yo practico el autocontrol. Nunca bebo nada más fuerte que la ginebra antes del desayuno. W. C. Fields Actor estadounidense (1880-1946) | | Citas en tu mail | | ©Contenidos Gratis |
| Chiste de... Niños | | Las estrellas | Un niño observa las estrellas y pregunta a su madre:
- Oye mamá...¿Quién enciende por la noche las estrellas?
- El padre Dios.
- ¿Todas? ¿Estas que están ahí y aquellas que están lejos?
- Todas, hijo mío.
- ¡Pobrecillo, qué carreras se tiene que dar para encenderlas y apagarlas todas las noches! | | Chistes en tu mail | | ©ContenidosGratis |
| Inicio | Acción | Estrategia | Palabras | Puzzles | Solitarios | Foro Trucos |  | Cake Mania Jugadores: 6835 Categoría del juego: Acción Objetivo del juego: Ayuda a Jill a recuperar la pastelería de su abuela llevando su propia pastelería; consigue clientes y gana dinero. |
|  | Rainbow Web Jugadores: 2199 Categoría del juego: Puzzles Objetivo del juego: Rompe un pegajoso hechizo y salva un reino de fantasía en Rainbow Web. Tendrás toneladas de diversión mientras juegas a este mágico desafío para la mente. |
|  | Mahjongg Fortuna Jugadores: 12462 Categoría del juego: Solitarios Objetivo del juego: Velocidad y habilidad mental son las armas más importantes en esta versión de un antiguo juego asiático. Despeja el tablero lo antes posible haciendo clic en las fichas iguales y gánate la fama eterna de la puntuación más alta. |
|  | Chainz 2 Jugadores: 6955 Categoría del juego: Puzzles Objetivo del juego: Entra en el mundo de las combinaciones con Chainz 2: Relinked, emocionante secuela del exitazo del año pasado, Chainz. Gira eslabones y crea combinaciones de 3 ó más. |
|  | Delicious Jugadores: 4405 Categoría del juego: Acción Objetivo del juego: ¿Eres un as de la multitarea? ¿Quieres que tus clientes estén contentos? ¡Pues Delicious es tu juego! Sacia el apetito de los clientes y tenlos contentos; ¡no te arriesgues! |
|  | Bookworm Jugadores: 4568 Categoría del juego: Palabras Objetivo del juego: Junta las letras para formar palabras. ¡Las palabras más largas valen más puntos! |
|  | Zuma Jugadores: 4976 Categoría del juego: Acción Objetivo del juego: Controla el ídolo de la rana de piedra de los antiguos Zuma en este intrigante enigma de acción. ¡Dispara bolas para formar conjuntos de tres, pero si dejas que lleguen a la calavera dorada morirás! |
|  | Jewel of Atlantis Jugadores: 3798 Categoría del juego: Puzzles Objetivo del juego: Descubre la ciudad hundida de la Atlántida y busca valiosos tesoros. Viaja más allá de las profundidades del mar y vive trepidantes aventuras en Jewel of Atlantis. |
|  | Jewel Quest Jugadores: 3727 Categoría del juego: Puzzles Objetivo del juego: Convierte la arena de la antigua selva en oro tan rápido como puedas juntando grupos de 3 elementos. ¡Los grupos más grandes valen más puntos! |
|  | Bejeweled 2 Jugadores: 3659 Categoría del juego: Puzzles Objetivo del juego: Con cuatro modos de juego únicos y fascinantes, nuevas piezas de juego explosivas e imponentes fondos planetarios, Bejeweled 2 es mucho más adictivo que nunca. |
|
|