Examples. GNU Libidn2
Anuncio
Anuncio
Chapter 3: Examples 8
3 Examples
This chapter contains example code which illustrate how Libidn2 is used when you write your own application.
3.1 Lookup
This example demonstrates how a domain name is processed before it is lookup in the DNS.
#include <stdio.h> /* printf, fflush, fgets, stdin, perror, fprintf */
#include <string.h> /* strlen */
#include <locale.h> /* setlocale */
#include <stdlib.h> /* free */
#include <idn2.h> /* idn2_lookup_ul, IDN2_OK, idn2_strerror, idn2_strerror_name */ int main (int argc, char *argv[])
{ int rc; char src[BUFSIZ]; char *lookupname; setlocale (LC_ALL, ""); printf ("Enter (possibly non-ASCII) domain name to lookup: "); fflush (stdout); if (!fgets (src, sizeof (src), stdin))
{ perror ("fgets"); return 1;
} src[strlen (src) - 1] = ’\0’; rc = idn2_lookup_ul (src, &lookupname, 0); if (rc != IDN2_OK)
{ fprintf (stderr, "error: %s (%s, %d)\n", return 1; idn2_strerror (rc), idn2_strerror_name (rc), rc);
} printf ("IDNA2008 domain name to lookup in DNS: %s\n", lookupname); free (lookupname);
} return 0;
Chapter 3: Examples 9
3.2 Register
This example demonstrates how a domain label is processed before it is registered in the
DNS.
#include <stdio.h> /* printf, fflush, fgets, stdin, perror, fprintf */
#include <string.h> /* strlen */
#include <locale.h> /* setlocale */
#include <stdlib.h> /* free */
#include <idn2.h> /* idn2_register_ul, IDN2_OK, idn2_strerror, idn2_strerror_name */ int main (int argc, char *argv[])
{ int rc; char src[BUFSIZ]; char *insertname; setlocale (LC_ALL, ""); printf ("Enter (possibly non-ASCII) label to register: "); fflush (stdout); if (!fgets (src, sizeof (src), stdin))
{ perror ("fgets"); return 1;
} src[strlen (src) - 1] = ’\0’; rc = idn2_register_ul (src, NULL, &insertname, 0); if (rc != IDN2_OK)
{ fprintf (stderr, "error: %s (%s, %d)\n", return 1; idn2_strerror (rc), idn2_strerror_name (rc), rc);
} printf ("IDNA2008 label to register in DNS: %s\n", insertname); free (insertname);
} return 0;
Descargar
Anuncio