FULL-C dns resolv functions: Porovnání verzí
(Založena nová stránka s textem „ Tato stránka popisuje programovací jazyk '''FULL-C''', který je dostupný na vybraných zařízeních SDS. Některá zařízení používají SDS-C,…“) |
(Žádný rozdíl)
|
Verze z 26. 6. 2021, 11:40
Tato stránka popisuje programovací jazyk FULL-C, který je dostupný na vybraných zařízeních SDS. Některá zařízení používají SDS-C, pro který máme návody jinde na této WiKi.
Síťové funkce: dotaz na přidělenou IP adresu pro DNS jméno
Zařízení SDS umožňuje odeslat dotaz na DNS server, za účelem zjištění IP adresy přidělené k DNS názvu, který je obsahem právě takového dotazu.
Za tímto účelem jsou k dispozici tyto dvě funkce:
void dns_resolv(char *domainNameInput); unsigned int dns_resolv_status(unsigned int *IP0value, unsigned int *IP1value, unsigned int *IP2value, unsigned int *IP3value);
Princip
SDS odesílá dotaz na DNS server, který je nastaven uživatelem SDS ve webové administraci zařízení (popř. je adresa DNS serveru získána z DHCP serveru, opět záleží na konfiguraci).
Po odeslání dotazu se čeká na odpověď, přičemž FULL-C program pravidelně kontroluje stav voláním dns_resolv_status() funkce.
Příklad
V tomto příkladu odesílá SDS dotaz (textový název domény) na DNS server a zobrazuje případnou získanou odpověď (IP adresu).
void main(void)
{
char DNSname[64];
unsigned int status;
unsigned int IP0, IP1, IP2, IP3;
sprintf((char *)DNSname, "www.google.com");
printf("RESOLVING %s \n", DNSname);
dns_resolv(DNSname);
status = dns_resolv_status(&IP0, &IP1, &IP2, &IP3);
while (status == 512)
{
status = dns_resolv_status(&IP0, &IP1, &IP2, &IP3);
}
if (status == 513)
{
printf("GOT RESULT: IP = %u.%u.%u.%u\n", IP0, IP1, IP2, IP3);
} else
{
printf("DNS RESOLV FAILED (error %u) \n", status);
}
}
Stavové hodnoty
Program musí použít volání funkce dns_resolv_status pro zjištění okamžitého stavu.
dns_resolv_status() význam -------------------------+----------------------------------------------------------------------- 0 | klid, můžete odeslat DNS dotaz 512 | pracuje, dotaz odeslán, čekejte 513 | hotovo OK, do *resolvedIPaddressOutput byla zapsána IP adresa (4 bajty) 514 | odpověď nebyla získána (chyba) 515 | funkce byla zavolána s neplatnými parametry - nic nebylo provedeno