DNSRequest, sends a DNS request

  1. Home
  2. Knowledge Base
  3. Manualistica
  4. Programmazione IEC 61131-3
  5. Gestione networking
  6. DNSRequest, sends a DNS request

Questo blocco funzione invia una richiesta DNS. Indicando in DNSServer l'indirizzo IP di un server DNS (Esempio quello di Google 8.8.8.8) è possibile effettuare la richiesta di risoluzione di un dominio.

Attivando l'ingresso Enable viene effettuata la richiesta di risoluzione dell'URL indicato in Domain al server DNS. Se il server risolve l'URL viene attivata l'uscita Done e su DomainIP viene ritornato l'IP relativo.

Se Enable rimane attivo il FB controlla in tempo di vita della voce DNS ed esegue il riaggiornamento automatico dell'indirizzo IP. L'ingresso SpyOn se attivo permette di spiare il funzionamento del FB.

Function block
CODESYS: Non disponibile
LogicLab: eLLabNetworkLib

Enable (BOOL) Abilitazione esecuzione. Per rieseguire il comando disabilitare e poi riabilitare questo ingresso.

SpyOn (BOOL) Se attivo permette di spiare il funzionamento della FB.

DNSServer (STRING[15]) Stringa di definizione IP server DNS.

Domain (@STRING) Indirizzo stringa definizione URL di cui si desidera risolvere l'IP.

QType (UINT) Tipo di query. 16#0001 A record (host addresses). 16#0002 Name servers (NS) records (Not managed). 16#000F Mail server (MX)

Done (BOOL) Si attiva al termine della esecuzione comando.

Fault (BOOL) Attivo per un loop se errore esecuzione comando.

DomainIP (STRING[15]) Stringa di definizione IP trovato.

Trigger di spy

Se SpyOn attivo viene eseguita la funzione SysSpyData che permette di utilizzare la console di spionaggio per verificare il funzionamento della FB. Sono previsti vari livelli di triggers.

Errori

In caso di errore eseguendo immediatamente dopo la funzione SysGetLastError è possibile rilevare il codice di errore. Fare riferimento alla tabella seguente per la descrizione.

Esempi

Come utilizzare gli esempi.
Viene eseguita la richiesta di risoluzione dell'URL google.it al server DNS di Google "8.8.8.8".

LogicLab (Ptp119)
PROGRAM ST_DNSRequest
VAR
    DNS : DNSRequest; (* DNS request *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_DNSRequest"
// *****************************************************************************
// It's request the IP of the "google.it" at the the Google DNS server.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // INITIALIZATION
    // -------------------------------------------------------------------------
    // Program initializations.

    IF (SysFirstLoop) THEN
        DNS.SpyOn:=TRUE; //Spy on
        DNS.QType:=16#0001; //Query type (A record)
        DNS.DNSServer:=ADR('8.8.8.8'); //DNS server IP
    END_IF;

    // -------------------------------------------------------------------------
    // DNS REQUEST
    // -------------------------------------------------------------------------
    // Execute the request.

    DNS.Enable:=TRUE; //Enable
    DNS.Domain:=ADR('google.it'); //URL to be solved
    DNS(); //DNS request

// [End of file]

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 23 Marzo 2020