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.
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