DCHK Client Version 0.5.7 - Documentation DomainCheck

Example 4: Query several domains
[API Usage]

The next example shows how to use a domainlist to query several domains in one step. It also uses the dchk_PrintResults function to print the result and does not print the raw XML output.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <dchk.h>


int main(int argc, char **argv)
{
    int ret;
    // Define IRISLWZ_HANDLE
    IRISLWZ_HANDLE iris;

    // Assume all parameters are domain names
    int i;

    // Get a DomainList object
    DCHK_DOMAINLIST *list=dchk_NewDomainList();

    // Add the domains
    for (i=1;i<=argc;i++) dchk_AddDomain(list,argv[i]);

    // Use TLD of first domain to find DCHK server automatically
    const char *tld=strrchr(argv[1],'.');       // Find last occurance of '.'
    if (tld) tld++;                             // Point to first char after '.'
    else {
        // No TLD found, free the DomainList
        dchk_FreeDomainList(list);
        printf ("No tld found!\n");
        return 1;
    }

    // Initialize IRISLWZ_HANDLE
    irislwz_Init(&iris);

    // Use compression
    irislwz_SendDeflated(&iris,1);
    irislwz_AcceptDeflated(&iris,1);

    // Set hostname automatically by using DNS
    dchk_SetHostByDNS(&iris,tld);

    // Check if connection is possible
    if (!irislwz_Connect(&iris)) {
        ret=irislwz_GetErrorCode(&iris);
        irislwz_PrintError(&iris);
        irislwz_Exit(&iris);
        return ret;
    }
    // bundle 20 domains to one query
    if (!dchk_QueryDomainList(&iris,list,20)) {
        ret=irislwz_GetErrorCode(&iris);
        irislwz_PrintError(&iris);
        irislwz_Exit(&iris);
        dchk_FreeDomainList(list);
        return ret;
    }
    // Print answer
    dchk_PrintResults(list);
    irislwz_Exit(&iris);
    dchk_FreeDomainList(list);
    return 0;
}

// end

Compilation:

gcc -I/usr/local/include -L/usr/local/lib example4.c -o example4 -ldchk -lxml2 -lresolv
./example4 denic.de opsblau.de example.de fdefdw3e.de urgs#123.de
denic.de: active [2008-06-10T10:55:00+02:00]
opsblau.de: active [2008-06-10T10:55:00+02:00]
example.de: active [2008-06-10T10:55:00+02:00]
fdefdw3e.de: free
urgs#123.de: invalid
Generated on Wed Aug 4 21:23:46 2010 for DCHK Client Documentation by  doxygen 1.6.3