Pregunta sobre windows, php, dns – Búsqueda de DNS en PHP

4

Tengo un servidor de Windows que pierde intermitentemente la capacidad de buscar información de DNS. Estoy tratando de llegar a la causa raíz del problema, pero mientras tanto me gustaría poder monitorear si el servidor puede realizar búsquedas.

Básicamente, debería intentar buscar algunos nombres de host comunes y mostrar 'Success' si las búsquedas son exitosas.

El sitio ejecuta PHP, por lo que preferiría que el script del monitor esté en PHP, pero si alguien sabe cómo hacerlo en ASP / .Net, también funcionaría.

Tu respuesta

4   la respuesta
0

"Ping" siempre realiza una búsqueda de DNS (tanto hacia delante como hacia atrás) antes de hacer ping al nombre de host en cuestión. Escribir un script de shell para usar ping (o excavar) para ver si ping está actuando de manera extraña se deja como un ejercicio para el lector.

Otra opción es usar un servidor DNS de almacenamiento en caché en la máquina local que almacena las respuestas del servidor DNS ascendente y envía datos desde la memoria caché cuando el flujo ascendente está inactivo. Mi propio Deadwood es un pequeño binario de 32k para Windows o UNIX que puede hacer esto (64k si quieres una recursión completa de DNS)

0

pero hay una pequeña limitación de que la función es Changelog: v. PHP 5.3.0 - Esta función ahora está disponible en las plataformas Windows.

Si no quieres actualizar php en IIS. Hay otra alternativa que ejecutar diger para windows binary. aquí estácavar para las ventanas. También puede necesitar eso para su propio programa, no para ningún programa. Está más allá del viejo y no suficiente comando nslookup.

En mi caso, esto funciona porque el servidor está ejecutando 5.3 pero originalmente estaba haciendo la pregunta porque creía que la función no estaba disponible en Windows. Dave Forgac
2

En las ventanas, las funciones DNS de PHP no están disponibles de forma nativa antes de PHP 5.3. Necesitará la clase de Pear Net_DNS.http://pear.php.net/package/Net_DNS

Ejemplo de uso:

require_once 'Net/DNS.php';

$resolver = new Net_DNS_Resolver();
$resolver->debug = $this->debug;
// nameservers to query
$resolver->nameservers = array('192.168.0.1');
$resp = $resolver->query($domain, 'A');

fuente:http://code.google.com/p/php-smtp-email-validation/source/browse/trunk/smtp_validateEmail.class.php#232

6

http://www.php.net/manual/en/function.dns-get-record.php es la función en php que suena como si estuvieras después.

Gracias. Esa función no estaba disponible en Windows la última vez que intenté esto, pero estaba disponible en PHP 5.3+. Debería haberlo comprobado de nuevo primero. Dave Forgac

Preguntas relacionadas