DCHK Client Version 0.5.7 - Documentation |
![]() |
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