Communique avec le serveur Serveur DNS défini pour demander la résolution d'un nom de domaine en adresse IPv4.
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é.
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.
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.
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. |