FB_DnsClient

Présentation

Type :

Bloc fonction

Disponible à partir de :

V1.1.0.0

Tâche

Communique avec le serveur Serveur DNS défini pour demander la résolution d'un nom de domaine en adresse IPv4.

Description fonctionnelle

Ce bloc fonction permet de communiquer avec un Serveur DNS (conformément à RFC1035) afin d'obtenir l'adresse IPv4 enregistrée correspondant au nom de domaine défini. Par conséquent, un socket UDP est ouvert et une demande DNS est envoyée au serveur, qui est défini par les entrées i_sDnsServerIp et i_uiDnsServerPort. Lorsqu'une réponse est reçue du serveur ou que le délai expire, le socket est à nouveau fermé.

NOTE : Le bloc fonction prend en charge les réponses autoritaires et récursives fournies par le serveur DNS.

Si le serveur a résolu le nom de domaine et que la réponse a été reçue correctement, les adresses IPv4 résolues et la durée de vie correspondante (TTL) sont disponibles sur la sortie q_astDnsAddressInfo. Pour limiter le trafic réseau, la valeur TTL peut servir à mettre en cache les adresses résolues.

NOTE : Actualisez le cache IP en fonction des informations fournies par TTL.

La communication avec Serveur DNS requiert plusieurs cycles du programme. L'état du bloc fonction est indiqué par les sorties q_xBusy, q_xError et q_xDone.

Tant que le bloc fonction est exécuté, la sortie q_xBusy est TRUE. La sortie q_xDone est TRUE lorsque le bloc fonction s'est exécuté correctement.

Les messages d'état et les informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg.

Pour acquitter les erreurs détectées, désactivez et réactivez le bloc fonction pour pouvoir effectuer une nouvelle tentative de résolution du nom de domaine.

Interface

Entrée

Type de données

Description

i_xEnable

BOOL

Activation et initialisation du bloc fonction.

i_xExecute

BOOL

Sur un front montant de cette entrée, la requête DNS est envoyée au serveur DNS.

i_sDnsServerIP

STRING(15)

Indique l'adresse IP du serveur DNS externe.

i_uiDnsServerPort

UINT

Indique le port Serveur DNS externe.

Si la broche n'est pas attribuée, la valeur par défaut 53 est utilisée.

i_sDomainName

STRING(255)

Nom de domaine à résoudre.(Seuls les symboles ASCII sont pris en charge)

Sortie

Type de données

Description

q_xActive

BOOL

Si le bloc fonction est actif, cette sortie est TRUE.

q_xReady

BOOL

Indique TRUE si le bloc fonction est prêt à recevoir une commande d'exécution.

q_xBusy

BOOL

Si cette sortie est TRUE, le bloc fonction est en cours d'exécution.

q_xDone

BOOL

Si cette sortie est TRUE, l'exécution s'est effectuée correctement.

q_xError

BOOL

Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg.

q_etResult

ET_Result

Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique.

q_sResultMsg

STRING(80)

Fournit des informations de diagnostic et d'état sous la forme d'un message textuel.

q_uiNumberOfIpAddresses

UINT

Nombre d'adresses IP renvoyées par le Serveur DNS.

q_astDnsAddressInfo

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

La structure contient des informations sur le nom de domaine résolu, reçu de la part du serveur DNS.