otra - incluir archivo php en html
Ejecutar PHP dentro de la zona DNS Enlazar 10 (3)
Con bind esto es, hasta donde yo sé, imposible.
La solución que recomendaría es usar powerDNS .
PowerDNS es más flexible y puede usar una base de datos. Lo estoy usando con una base de datos MySQL, por ejemplo.
Tal vez eso es directamente lo que quieres, tal vez no lo es. Pero con la flexibilidad de usar una base de datos, puede crear un script PHP que inserta todo en la base de datos y lo comprueba, y así sucesivamente.
Estoy usando linux CentOS 6.64 con BIND 10.1.2
Tengo una zona adicional (list.example.com) dentro del DNS principal (example.com)
El archivo de configuración del enlace (named) /etc/named.conf incluye la zona:
zone "list.example.com" IN {
type master;
file "list-example-com.zone";
allow-query { localhost; };
allow-transfer { 127.0.0.1; };
};
Lista de archivos de zona-example-com.zone de la siguiente manera:
$TTL 86400 ; 1 day
@ IN SOA ns1.example.com. hostmaster.example.com. (
2004032201 ; serial
7200 ; refresh (2 hours)
5400 ; retry (1.5 hours)
1814400 ; expire (3 weeks)
86400 ; minimum (1 day)
)
IN NS ns1.example.com.
;
IN A 192.168.177.22
;
; -----------------------------------------------------------------
49.30.22.66 IN A 127.0.0.3
44.63.20.10 IN A 127.0.0.2
64.42.10.5 IN A 127.0.0.2
14.3.6.8 IN A 127.0.0.3
// AND OTHER 1000S OF RECORDS LIKE THAT!
Vamos a elegir una de las IP grabadas como ejemplo
La "búsqueda de DNS" para el IP 44.63.20.10 será:
44.63.20.10.list.example.com y devolverá 127.0.0.2 del DNS
Ok, ahora lo que quiero hacer es, en lugar de listar miles de registros IP, solo quiero ejecutar un archivo PHP en named.conf, archivo de zona o cualquier otro para ejecutar algunos códigos y devolver 127.0.0.2 para "A DNS" de IP 44.63.20.10
myfile.php:
<?php
// Just need to get the required IP (44.63.20.10) and the DNS_TYPE of the request (A, TXT,...ect) then:
// Execute some PHP codes to do some stuff (including connect to mysql database..ect)
// If the IP is TRUE, then return: (44.63.20.10 IN DNS_TYPE X)
?>
Espero que sea claro para ti.
Tengo mi propio archivo PHP, solo necesito saber si es posible hacer eso. y si es así, ¿entonces cómo? Alguna idea, por favor?
Gracias.
Si tiene que usar bind
, entonces algo como la siguiente solución debería funcionar.
- Cree una secuencia de comandos para generar el archivo de zona. Puede usar php o casi cualquier idioma para hacer esto.
- Una vez que se genera el archivo, vuelva a cargar para cargar el archivo actualizado.
- Si estos datos cambian regularmente, use cron para ejecutar ambos comandos en un intervalo de 5 minutos o algo apropiado a sus datos.
Debe utilizar la API de función completa BIND, que permite que el "complemento" reemplace la función de base de datos interna de BIND para las zonas nominadas y de BIND.
Deberá editar los archivos fuente BIND y makefile.in y luego volver a compilar BIND, incluidos los archivos fuente y de encabezado.
Para comenzar con la API, busque el archivo db.h que se encuentra en el directorio bind-release / lib / dns / include / dns / db.h donde bind-release debe reemplazarse con la ubicación y el número de versión donde desempaquetó la fuente distribución, por ejemplo, /usr/src/bind/10.1.2
Aquí hay una copia http://pastebin.com/yTN5Aq03