Utils - FB_DnsClient

 

FB_DnsClient

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.1.0.0

G-SE-0058231.1.gif-high.gif

 

 

Aufgabe

Kommunikation mit dem angegebenen DNS-Server zur Anforderung der Auflösung eines Domänennamens in eine IPv4-Adresse.

Funktionsbeschreibung

Dieser Funktionsbaustein ermöglicht die Kommunikation mit einem DNS-Server (gemäß RFC1035), um die registrierte IPv4-Adresse abzurufen, die dem angegebenen Domänennamen entspricht. Zu diesem Zweck wird ein UDP-Socket geöffnet und ein DNS-Request an den über die Eingänge i_sDnsServerIp und i_uiDnsServerPort festgelegten Server gesendet. Sobald eine Antwort vom Server empfangen wird bzw. das Timeout erreicht ist, wird der Socket wieder geschlossen.

HINWEIS: Der Funktionsbaustein unterstützt sowohl autoritative als auch rekursive Antworten vom DNS-Server.

Wenn der Domänenname vom Server aufgelöst werden konnte und die Antwort fehlerfrei empfangen wurde, sind die aufgelöste IPv4-Adresse und die zugehörige Lebenzeit (Time-to-Live: TTL) am Ausgang q_astDnsAddressInfo verfügbar. Um den Netzwerkverkehr einzuschränken, kann der TTL-Wert zur Zwischenspeicherung der aufgelösten Adressen verwendet werden.

HINWEIS: Aktualisieren Sie den IP-Cachespeicher in Übereinstimmung mit den von TTL bereitge­stellten Informationen.

Die Kommunikation mit dem DNS-Server nimmt mehrere Programmzyklen in Anspruch. Der Status des Funktionsbausteins wird von den Ausgängen q_xBusy, q_xError und q_xDone angegeben.

Während der Ausführung des Funktionsbausteins steht der Ausgang q_xBusy auf TRUE. Der Ausgang q_xDone wird auf TRUE gesetzt, sobald der Funktionsbaustein erfolgreich ausgeführt wurde.

Statusmeldungen und Diagnoseinformationen werden unter Verwendung der Ausgänge q_xError (TRUE, wenn ein Fehler erkannt wurde), q_etResult und q_etResultMsg bereitgestellt.

Um erkannte Fehler zu quittieren, deaktivieren und reaktivieren Sie den Funktionsbaustein, um einen neuen Versuch zur Auflösung des Domänennamens unternehmen zu können.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_xEnable

BOOL

Aktivierung und Initialisierung des Funktionsbausteins

i_xExecute

BOOL

Bei steigender Flanke an diesem Eingang wird der DNS-Request an den DNS-Server gesendet.

i_sDnsServerIP

STRING(15)

Verweist auf die IP-Adresse des externen DNS-Servers.

i_uiDnsServerPort

UINT

Gibt den Port am externen DNS-Server an.

Wenn der Steckanschluss nicht zugewiesen wurde, wird der Standardwert 53 verwendet.

i_sDomainName

STRING(255)

Aufzulösender Domänenname.(Nur ASCII-Symbole werden unterstützt.)

Ausgang

Datentyp

Beschreibung

q_xActive

BOOL

Wenn der Funktionsbaustein aktiv ist, wird dieser Ausgang auf TRUE gesetzt.

q_xReady

BOOL

Steht auf TRUE, wenn der Funktionsbaustein bereit für den Empfang eines Ausführungsbefehls ist.

q_xBusy

BOOL

Wenn dieser Ausgang auf TRUE gesetzt wird, bedeutet das, dass der Funktionsbaustein ausgeführt wird.

q_xDone

BOOL

Wenn dieser Ausgang auf TRUE gesetzt wird, wurde die Ausführung erfolgreich abgeschlossen.

q_xError

BOOL

Wenn dieser Ausgang auf TRUE gesetzt wird, wurde ein Fehler identifiziert. Für weitere Informationen, siehe q_etResult und q_etResultMsg,

q_etResult

ET_Result

Stellt Diagnose- und Statusinformationen in Form numerischer Werte bereit.

q_sResultMsg

STRING(80)

Stellt zusätzliche Diagnose- und Statusinformationen in Form von Textmeldungen bereit.

q_uiNumberOfIpAddresses

UINT

Anzahl der vom DNS-Server zurückgegebenen IP-Adressen.

q_astDnsAddressInfo

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

Struktur mit Informationen zu dem vom DNS-Server empfangenen aufgelösten Domain-Namen.