Utilidades - FB_DnsClient

 

FB_DnsClient

Descripción general

Tipo:

Bloque de funciones

Disponible desde:

V1.1.0.0

G-SE-0058231.1.gif-high.gif

 

 

Tarea

Se comunica con el Servidor DNS especificado para solicitar la resolución de un nombre de dominio en una dirección IPv4.

Descripción funcional

Este bloque de funciones se utiliza para comunicarse con un Servidor DNS (según RFC1035) para obtener la dirección IPv4 registrada correspondiente al nombre de dominio especificado. Por lo tanto, se abre un socket UDP y se envía una petición DNS al servidor, que se especifica mediante las entradas i_sDnsServerIp y i_uiDnsServerPort. El socket se vuelve a cerrar cuando se recibe una respuesta del servidor o se produce un timeout.

NOTA: El bloque de funciones admite respuestas autoritativas y recursivas proporcionadas por el servidor DNS.

Si el servidor puede resolver el nombre de dominio y la respuesta se ha recibido correctamente, las direcciones IPv4 resueltas y el periodo de vida correspondiente (TTL) están disponibles en la salida q_astDnsAddressInfo. Para limitar el tráfico de red se puede utilizar el valor TTL para almacenar en caché las direcciones resueltas.

NOTA: Actualice la caché de IP según la información proporcionada por TTL.

La comunicación con el Servidor DNS requiere varios ciclos de programa. El estado del bloque de funciones se indica mediante las salidas q_xBusy, q_xError y q_xDone.

Mientras el bloque de funciones se esté ejecutando, la salida q_xBusy se establece como TRUE. La salida q_xDone se establece como TRUE después de que el bloque funciones se haya ejecutado correctamente.

Los mensajes de estado y la información de diagnóstico se proporcionan mediante las salidas q_xError (TRUE si se ha detectado un error), q_etResult y q_etResultMsg.

Para confirmar los errores detectados, deshabilite y vuelva a habilitar el bloque de funciones para poder realizar un nuevo intento de resolver el nombre de dominio.

Interfaz

Entrada

Tipo de datos

Descripción

i_xEnable

BOOL

Activación e inicialización del bloque de funciones.

i_xExecute

BOOL

Tras un flanco ascendente de esta entrada, la petición de DNS se envía al servidor DNS.

i_sDnsServerIP

STRING(15)

Especifica la dirección IP del servidor DNS externo.

i_uiDnsServerPort

UINT

Especifica el puerto del Servidor DNS externo.

Si el pin no está asignado, se utiliza el valor predeterminado 53.

i_sDomainName

STRING(255)

El nombre de dominio a resolver.(Sólo se admiten símbolos ASCII).

Salida

Tipo de datos

Descripción

q_xActive

BOOL

Si el bloque de funciones está activo, esta salida se establece en TRUE.

q_xReady

BOOL

Indica TRUE si el bloque de funciones está preparado para recibir un comando de ejecución.

q_xBusy

BOOL

Si esta salida está configurada en TRUE, la ejecución del bloque de funciones está en curso.

q_xDone

BOOL

Si esta salida está configurada en TRUE, la ejecución se ha completado correctamente.

q_xError

BOOL

Si esta salida se establece en TRUE, se ha detectado un error. Para obtener información detallada, consulte q_etResult y q_etResultMsg.

q_etResult

ET_Result

Proporciona información de diagnóstico y estado en forma de valor numérico.

q_sResultMsg

STRING(80)

Proporciona información adicional de diagnóstico y estado en forma de mensaje de texto.

q_uiNumberOfIpAddresses

UINT

Número de direcciones IP que devuelve el Servidor DNS.

q_astDnsAddressInfo

ARRAY [0..GPL.Gc_uiDnsNumberOfIPs-1] OF ST_DnsAddressInfo

La estructura contiene información sobre el nombre de dominio resuelto y recibido del servidor DNS.