El Domain Name System, lo que comúnmente conocemos como DNS, cumple un papel muy importante para que los dominios puedan ser accesibles a la web; sin ellos, un dominio no se podría ver en internet. Este «Sistema de Nombre de Dominio» se utiliza para resolver los nombres de los dominios y convertirlos de tal manera que sean leídos por un computador y así ubicarlos desde cualquier parte del mundo. Es, esencialmente, la identidad del dominio.
Cómo realizar consultas DNS desde PHP
En los sistemas, a veces se necesita identificar estos registros dependiendo de lo que estés desarrollando, por lo que existen varias maneras de consultarlos y obtener su información desde PHP. Actualmente, existen funciones nativas que nos ayudan con esta tarea:
- dns_get_record(): Esta función te devuelve un arreglo completo de los registros que puedes manipular con el DNS, como por ejemplo el registro A, MX, NS, entre otros.
- checkdnsrr(): Es una función que devuelve un valor booleano; su función es verificar si existe o no un registro de cualquier tipo que le pases como parámetro.
Es importante tener en cuenta que algunas de estas funciones necesitan utilizar otras herramientas como exec. Sin embargo, hay que considerar que la función exec deja vulnerable la seguridad del servidor en caso de algún malware o hackeo hacia tu página. Para evitar esto, existe la posibilidad de utilizar librerías especializadas o funciones nativas seguras.
Conceptos fundamentales: Resolución inversa y registros PTR
El DNS se utiliza para distintos propósitos, entre ellos la resolución inversa de direcciones. Un registro PTR, conocido como registro de puntero o registro DNS inverso, es el tipo de registro del Domain Name System utilizado para almacenar el dominio o nombre de host para una dirección IP.
Una búsqueda inversa de DNS o búsqueda de dirección IP inversa es un proceso opuesto que comienza con una dirección IP y termina con el nombre de dominio o nombre de host asociado. La estructura del registro PTR es similar a otros tipos de registros DNS:
Lea también: IVA 21% Excel
Tabla de componentes de registros DNS
| Componente | Descripción |
| TTL | Time to Live: el tiempo en segundos para el cual la entrada es válida. |
| Tipo | Indica el tipo de registro (A, MX, PTR, etc.). |
| Registro PTR | Almacena el nombre de host asociado a una IP en formato .in-addr.arpa. |
Es importante recordar que un registro A debe existir por cada registro PTR. Un registro PTR se almacena como la dirección IP desglosada en segmentos, invertida y seguida de .in-addr.arpa. Por ejemplo, para una IP, el identificador del registro se construye bajo esta jerarquía para permitir la resolución inversa.
Consideraciones sobre la configuración del sistema
Los diferentes servicios que nos ofrecen la posibilidad de resolver nombres de dominio a direcciones IP dentro de un sistema operativo GNU/Linux han ido evolucionando. El Name Service Switch (NSS) es una biblioteca estándar que ofrece distintas funciones para consultar bases de datos del sistema, incluyendo los nombres de hosts.
Además, herramientas modernas como systemd-resolved proporcionan resolución de nombres de dominio a aplicaciones locales mediante una interfaz D-Bus. Este servicio permite modos de operación como el archivo «stub» de DNS, que actúa como un servidor DNS auxiliar con caché, mejorando la eficiencia en la resolución de nombres de dominio para el sistema operativo.
Lea también: Guía IVA reducido
Lea también: ¿Cómo localizar tus XML del SAT?
