Domain Name System (DNS) :

 Le DNS (traduisez Système de nom de domaine est un service permettant d'Ă©tablir une correspondance entre un nom de domaine et une adresse IP.

Un serveur DNS est donc une machine permettant de faire cette correspondance.

Le DNS , a été mis au point en novembre 1983 par Paul Mockapetris (RFC 882 et RFC 883), puis révisé en 1987 dans les RFCs 1034 et 1035. Le DNS a fait l'objet depuis de nombreuses RFCs.

Un DNS est une base de données répartie contenant des enregistrements, appelés RR (Resource Records), concernant les noms de domaines.

 D’une manière gĂ©nĂ©rale, un enregistrement DNS comporte les informations suivantes :


·       FQDN :Fully Qualified Domain Name, soit Nom de Domaine Totalement QualifiĂ©. Le nom de domaine est composĂ© de plusieurs label sĂ©parer par un point. Dans un nom de domaine, le label Ă  l'extrĂŞme droite doit ĂŞtre choisi dans la liste des noms de domaines de premier niveau.

 

 Il existe deux types de domaines de premier niveau :

 

1.    les domaines nationaux de premier niveau composĂ©s de deux lettres identifiant un pays ou un territoire indĂ©pendant. Exemple : dz pour algerie ,fr pour France, pl pour Pologne

 

2.    les domaines de premier niveau gĂ©nĂ©riques composĂ©s de trois lettres ou plus identifiant gĂ©nĂ©ralement le secteur d'activitĂ© dans lequel opèrent les individus ou les organisations qui les utilisent. Exemple : com pour les sites commerciaux, info pour les services d'informations, ou bien org pour les organisations.

 

·       TTL (durĂ©e de vie/Time To Live) – La TTL est la pĂ©riode durant laquelle les serveurs mettent en cache les donnĂ©es pour les enregistrements DNS= dĂ©termine le nombre de secondes qui s'Ă©coulent avant la prise en compte de nouvelles modifications apportĂ©es Ă  l'enregistrement.

 

Les noms de machine :

·       gethostname :

Récupère le (premier) nom de la machine locale, placé dans nom lg est la taille de l'espace mémoire référencé par nom. Retourne 0 si appel réussi, -1 sinon.

 

Syntaxe :


·       Gethostbyname : 

Recherche l'adresse de la machine ayant le nom de domaine name. Elle renvoie un pointeur vers la structure hostent , ou bien un pointeur NULL si une erreur se produit, auquel cas h_errno contient le code d'erreur.

Syntaxe :


La structure hostent:

 

struct hostent {

char *h_name ; /*nom officiel de la machine*/

char *h_aliases ; /*liste des surnoms de cette machine*/

int h_addrtype ; /*type d’adresse (exple adresse IP) */

int h_length ; /*longueur de l’adresse */

char **h_addr_list ;  /*table terminĂ©e par un pointeur nullĂ liste des adresses de la machine cas (plusieurs adresses (les routeurs) */

}

#define h_addr h_addr_list [ 0 ] /*première adresse dans h_addr_list

 

·       gethostbyaddr

La fonction  gethostbyaddr() renvoie une structure du type  hostent pour l'hĂ´te d'adresse  addr. Cette adresse est de longueur  len et du  type donnĂ©.

Dans le cas d’erreur la fonction renvoie  pointeur NULL si une erreur se produit, auquel cas h_errno contient le code d'erreur.

 

Exemple :

struct hostent *he;
struct in_addr ipv4addr;
 
inet_pton(AF_INET, "192.0.2.34", &ipv4addr);
he = gethostbyaddr(&ipv4addr, sizeof ipv4addr, AF_INET);
printf("Host name: %s\n", he->h_name);

 Les opĂ©rations sur les octets

Pour initialiser une structure ou pour mettre Ă  jour on dispose de plusieurs fonctions :

Syntaxe :

#include <string.h>

void bcopy (const void *src, void *dest, int n);

void bzero(void *s, int n);

void *memset(void *s, int c, size_t n);

 

RĂ´le :

1.    La fonction bcopy() : qui a pour paramètre 2 structures et un entier n qui indique le nombre d’octets Ă  copier. Cette fonction copie les n premiers octets de la structure 1 dans la structure 2.

2.    La fonction bzero()qui initialise Ă  0 tous les champs de la structure passĂ©e en paramètre. Cette fonction doit ĂŞtre appelĂ©e avant l’utilisation de la structure.

3.    La fonction memset() remplit les n premiers octets de la zone mĂ©moire pointĂ©e par s avec le caractère c.

 

 

 

 

 




Modifié le: mercredi 24 avril 2024, 22:00