Unix Socket - Fonctions d'adresse IP

Unix fournit divers appels de fonctions pour vous aider à manipuler les adresses IP. Ces fonctions convertissent les adresses Internet entre des chaînes ASCII (ce que les humains préfèrent utiliser) et des valeurs binaires ordonnées par octets du réseau (valeurs stockées dans des structures d'adresses de socket).

Les trois appels de fonction suivants sont utilisés pour l'adressage IPv4 -

  • int inet_aton (const char * strptr, struct in_addr * addrptr)
  • in_addr_t inet_addr (const char * strptr)
  • char * inet_ntoa (struct in_addr inaddr)

int inet_aton (const char * strptr, struct in_addr * addrptr)

Cet appel de fonction convertit la chaîne spécifiée dans la notation par points standard Internet en une adresse réseau et stocke l'adresse dans la structure fournie. L'adresse convertie sera dans l'ordre des octets du réseau (octets classés de gauche à droite). Il renvoie 1 si la chaîne était valide et 0 en cas d'erreur.

Voici l'exemple d'utilisation -

#include <arpa/inet.h>

(...)

   int retval;
   struct in_addr addrptr
   
   memset(&addrptr, '\0', sizeof(addrptr));
   retval = inet_aton("68.178.157.132", &addrptr);

(...)

in_addr_t inet_addr (const char * strptr)

Cet appel de fonction convertit la chaîne spécifiée dans la notation par points standard Internet en une valeur entière pouvant être utilisée comme adresse Internet. L'adresse convertie sera dans l'ordre des octets du réseau (octets classés de gauche à droite). Il renvoie une adresse IPv4 ordonnée par octet de réseau binaire 32 bits et INADDR_NONE en cas d'erreur.

Voici l'exemple d'utilisation -

#include <arpa/inet.h>

(...)

   struct sockaddr_in dest;

   memset(&dest, '\0', sizeof(dest));
   dest.sin_addr.s_addr = inet_addr("68.178.157.132");
   
(...)

char * inet_ntoa (struct in_addr inaddr)

Cet appel de fonction convertit l'adresse d'hôte Internet spécifiée en une chaîne dans la notation par points standard Internet.

Voici l'exemple d'utilisation -

#include <arpa/inet.h>

(...)

   char *ip;
   
   ip = inet_ntoa(dest.sin_addr);
   
   printf("IP Address is: %s\n",ip);
   
(...)