Maison > développement back-end > C++ > Comment obtenir l'adresse IP et le masque de sous-réseau d'un ordinateur local en C ?

Comment obtenir l'adresse IP et le masque de sous-réseau d'un ordinateur local en C ?

Barbara Streisand
Libérer: 2024-11-11 15:54:03
original
740 Les gens l'ont consulté

How to Get a Local Computer's IP Address and Subnet Mask in C  ?

Comment récupérer l'adresse IP et le masque de sous-réseau d'un ordinateur local en C

Déterminer l'adresse IP et le masque de sous-réseau de l'ordinateur local est un exigence fondamentale pour diverses opérations de réseau. En C , il existe plusieurs approches pour obtenir ces valeurs.

Le code de Torial fournit une solution efficace pour récupérer à la fois l'adresse IP et le masque de sous-réseau. Il exploite la fonction getifaddrs() pour parcourir toutes les adresses d'interface réseau associées à l'ordinateur local.

Voici une version légèrement améliorée du code :

#include <ifaddrs.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
  struct ifaddrs *ifaddr;
  int err;
  if ((err = getifaddrs(&ifaddr)) != 0) {
    perror("getifaddrs");
    exit(EXIT_FAILURE);
  }
  for (struct ifaddrs *ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) {
    if (!ifa->ifa_addr) continue;
    // Print the IP address
    if (ifa->ifa_addr->sa_family == AF_INET) {
      char ip[INET_ADDRSTRLEN];
      inet_ntop(AF_INET, &((struct sockaddr_in *)ifa->ifa_addr)->sin_addr, ip, INET_ADDRSTRLEN);
      printf("IP: %s\n", ip);
    }
    // Print the subnet mask
    if (ifa->ifa_netmask->sa_family == AF_INET) {
      char mask[INET_ADDRSTRLEN];
      inet_ntop(AF_INET, &((struct sockaddr_in *)ifa->ifa_netmask)->sin_addr, mask, INET_ADDRSTRLEN);
      printf("Subnet Mask: %s\n", mask);
    }
  }
  freeifaddrs(ifaddr);
  return 0;
}
Copier après la connexion

Ce code mis à jour garantit à la fois l'adresse IP et le masque de sous-réseau sont correctement identifiés et imprimés pour chaque interface réseau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal