Récupérer l’adresse IP en langage C
Dans ce tutoriel nous allons découvrir comment récupérer l’adresse IP (IPv4) d’une interface spécifique en utilisant le langage C. La sortie du programme est également indiquée ci-dessous.
Programme C pour récupérer l’adresse IP
#include <stdio.h> #include <stdlib.h> #include <netdb.h> #include <ifaddrs.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> int main() { struct ifaddrs *addr, *intf; char hostname[NI_MAXHOST]; int family, s; if (getifaddrs(&intf) == -1) { perror("getifaddrs"); exit(EXIT_FAILURE); } for (addr = intf; addr != NULL; addr = addr->ifa_next) { family = addr->ifa_addr->sa_family; //AF_INET est la famille d'adresses pour IPv4 if (family == AF_INET) { //getnameinfo permet la résolution de noms. s = getnameinfo(addr->ifa_addr, sizeof(struct sockaddr_in), hostname, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); printf("<interface>: %s \t <adresse> %s\n", addr->ifa_name, hostname); } } return 0; }
La sortie :