Heim >Backend-Entwicklung >C++ >Wie erhalte ich die IP-Adresse und Subnetzmaske eines lokalen Computers 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 <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; }
Dieser aktualisierte Code gewährleistet beides Die IP-Adresse und die Subnetzmaske werden für jede Netzwerkschnittstelle korrekt identifiziert und gedruckt.
Das obige ist der detaillierte Inhalt vonWie erhalte ich die IP-Adresse und Subnetzmaske eines lokalen Computers in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!