„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erhalte ich die IP-Adresse und Subnetzmaske eines lokalen Computers in C++?

Wie erhalte ich die IP-Adresse und Subnetzmaske eines lokalen Computers in C++?

Veröffentlicht am 15.11.2024
Durchsuche:845

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

So rufen Sie die IP-Adresse und Subnetzmaske eines lokalen Computers in C ab

Das Ermitteln der IP-Adresse und Subnetzmaske des lokalen Computers ist ein Grundvoraussetzung für verschiedene Netzwerkoperationen. In C gibt es mehrere Ansätze, diese Werte zu erhalten.

Der Code von Torial bietet eine effektive Lösung zum Abrufen sowohl der IP-Adresse als auch der Subnetzmaske. Es nutzt die Funktion getifaddrs(), um alle Netzwerkschnittstellenadressen zu durchlaufen, die dem lokalen Computer zugeordnet sind.

Hier ist eine leicht verbesserte Version des Codes:

#include 
#include 
#include 
#include 

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;
}

Dieser aktualisierte Code stellt sicher, dass sowohl die IP-Adresse als auch die Subnetzmaske korrekt identifiziert und für jede Netzwerkschnittstelle gedruckt werden.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3